From b2033f6d6d8918ed9ac72468aaa5faf96f8157dd Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 25 May 2025 16:41:43 -0400 Subject: Optimize codegen for enums: no longer bother with a struct wrapper, but just use a C enum type instead. This will make it easier to use externally defined enums in the future. --- src/types.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/types.c') diff --git a/src/types.c b/src/types.c index 91848bef..1a2405d4 100644 --- a/src/types.c +++ b/src/types.c @@ -836,4 +836,13 @@ type_t *_make_function_type(type_t *ret, int n, arg_t args[n]) return Type(FunctionType, .ret=ret, .args=&arg_pointers[0]); } +PUREFUNC bool enum_has_fields(type_t *t) +{ + for (tag_t *e_tag = Match(t, EnumType)->tags; e_tag; e_tag = e_tag->next) { + if (e_tag->type != NULL && Match(e_tag->type, StructType)->fields) + return true; + } + return false; +} + // vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 -- cgit v1.2.3