aboutsummaryrefslogtreecommitdiff
path: root/src/type.cff
diff options
context:
space:
mode:
Diffstat (limited to 'src/type.cff')
-rw-r--r--src/type.cff11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/type.cff b/src/type.cff
index ddb4cd8..194ff01 100644
--- a/src/type.cff
+++ b/src/type.cff
@@ -115,14 +115,13 @@ struct TypeTraits {
}
}
+static types_set Set<*const Type, TypeTraits> = {};
extern fn interntype(ty0 Type) *const Type {
- static set Set<*const Type, TypeTraits> = {};
-
if ty0.align == 0 {
ty0.align = ty0.size;
}
- return *set->intern(&ty0);
+ return *types_set->intern(&ty0);
}
extern fn completetype(ty *const Type) bool {
@@ -307,3 +306,9 @@ extern fn typeof2(a *const Type, b *const Type) *const Type {
}
return #null;
}
+
+extern fn types_to_llvm() void {
+ set_each(ty, types_set) {
+ llvm_addtype(ty);
+ }
+}