aboutsummaryrefslogtreecommitdiff
path: root/src/checker.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-11-11 17:08:30 +0000
committergingerBill <bill@gingerbill.org>2018-11-11 17:08:30 +0000
commitb55b1ffe14bc4a7459cd9b9bdb8b9b0c8f7f8091 (patch)
tree77df172a7e387801f9f43999dcc412a6fb5b71be /src/checker.cpp
parent620d5d34f7c5712be27a92e1ab6ab48119f0a4c6 (diff)
`opaque` keyword and type
Diffstat (limited to 'src/checker.cpp')
-rw-r--r--src/checker.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/checker.cpp b/src/checker.cpp
index 5daefc896..d289d236c 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -1064,6 +1064,10 @@ void add_type_info_type(CheckerContext *c, Type *t) {
add_type_info_type(c, bt->BitSet.elem);
break;
+ case Type_Opaque:
+ add_type_info_type(c, bt->Opaque.elem);
+ break;
+
case Type_Union:
add_type_info_type(c, t_int);
add_type_info_type(c, t_type_info_ptr);
@@ -1626,6 +1630,7 @@ void init_core_type_info(Checker *c) {
t_type_info_map = find_core_type(c, str_lit("Type_Info_Map"));
t_type_info_bit_field = find_core_type(c, str_lit("Type_Info_Bit_Field"));
t_type_info_bit_set = find_core_type(c, str_lit("Type_Info_Bit_Set"));
+ t_type_info_opaque = find_core_type(c, str_lit("Type_Info_Opaque"));
t_type_info_named_ptr = alloc_type_pointer(t_type_info_named);
t_type_info_integer_ptr = alloc_type_pointer(t_type_info_integer);
@@ -1648,6 +1653,7 @@ void init_core_type_info(Checker *c) {
t_type_info_map_ptr = alloc_type_pointer(t_type_info_map);
t_type_info_bit_field_ptr = alloc_type_pointer(t_type_info_bit_field);
t_type_info_bit_set_ptr = alloc_type_pointer(t_type_info_bit_set);
+ t_type_info_opaque_ptr = alloc_type_pointer(t_type_info_opaque);
}
void init_mem_allocator(Checker *c) {