diff options
| author | gingerBill <bill@gingerbill.org> | 2021-04-22 10:35:17 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-04-22 10:35:17 +0100 |
| commit | 47c7dc6a9bfc679f027984bd68523743b4d7734f (patch) | |
| tree | 8ba1ec35c1e2c0b0229a78ccee3dfc91381b69f5 /src/types.cpp | |
| parent | 65551ba8fb862a9caef97b3c84b17baa7715bbb6 (diff) | |
Add new intrinsics: debug_trap, trap, read_cycle_counter, expect
Diffstat (limited to 'src/types.cpp')
| -rw-r--r-- | src/types.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/types.cpp b/src/types.cpp index 7d85aa6bb..9871e469c 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -460,8 +460,8 @@ gb_global Type basic_types[] = { {Type_Basic, {Basic_i64, BasicFlag_Integer, 8, STR_LIT("i64")}}, {Type_Basic, {Basic_u64, BasicFlag_Integer | BasicFlag_Unsigned, 8, STR_LIT("u64")}}, - {Type_Basic, {Basic_i128, BasicFlag_Integer, 16, STR_LIT("i128")}}, - {Type_Basic, {Basic_u128, BasicFlag_Integer | BasicFlag_Unsigned, 16, STR_LIT("u128")}}, + {Type_Basic, {Basic_i128, BasicFlag_Integer, 16, STR_LIT("i128")}}, + {Type_Basic, {Basic_u128, BasicFlag_Integer | BasicFlag_Unsigned, 16, STR_LIT("u128")}}, {Type_Basic, {Basic_rune, BasicFlag_Integer | BasicFlag_Rune, 4, STR_LIT("rune")}}, @@ -1012,6 +1012,20 @@ bool is_type_integer(Type *t) { } return false; } +bool is_type_integer_like(Type *t) { + t = core_type(t); + if (t->kind == Type_Basic) { + return (t->Basic.flags & (BasicFlag_Integer|BasicFlag_Boolean)) != 0; + } + if (t->kind == Type_BitSet) { + if (t->BitSet.underlying) { + return is_type_integer_like(t->BitSet.underlying); + } + return true; + } + return false; +} + bool is_type_unsigned(Type *t) { t = base_type(t); // t = core_type(t); |