diff --git a/src/common.h b/src/common.h index acf66c4d..ff2f1134 100644 --- a/src/common.h +++ b/src/common.h @@ -35,8 +35,11 @@ typedef int64_t i64; typedef double f64; -#define DUMMY_VAL (char)1 -#define DUMMY_VAL_TP char + +struct Dummy { char _; }; + +#define DUMMY_VAL Dummy() +#define DUMMY_VAL_TP Dummy template void* tid() { diff --git a/src/vm.h b/src/vm.h index 314022a7..1b80c248 100644 --- a/src/vm.h +++ b/src/vm.h @@ -583,7 +583,7 @@ public: PyVar new_type_object(PyVar mod, _Str name, PyVar base){ if(!base->is_type(_tp_type)) UNREACHABLE(); - PyVar obj = pkpy::make_shared>(_tp_type, DUMMY_VAL); + PyVar obj = pkpy::make_shared>(_tp_type, DUMMY_VAL); setattr(obj, __base__, base); _Str fullName = name; if(mod != builtins) fullName = OBJ_NAME(mod) + "." + name; @@ -594,7 +594,7 @@ public: PyVar _new_type_object(_Str name, PyVar base=nullptr) { if(base == nullptr) base = _tp_object; - PyVar obj = pkpy::make_shared>(_tp_type, DUMMY_VAL); + PyVar obj = pkpy::make_shared>(_tp_type, DUMMY_VAL); setattr(obj, __base__, base); _types[name] = obj; return obj; @@ -830,8 +830,8 @@ public: inline const PyVar& PyBool(bool value){return value ? True : False;} void init_builtin_types(){ - _tp_object = pkpy::make_shared>(nullptr, DUMMY_VAL); - _tp_type = pkpy::make_shared>(nullptr, DUMMY_VAL); + _tp_object = pkpy::make_shared>(nullptr, DUMMY_VAL); + _tp_type = pkpy::make_shared>(nullptr, DUMMY_VAL); _types["object"] = _tp_object; _types["type"] = _tp_type;