aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-22 10:35:17 +0100
committergingerBill <bill@gingerbill.org>2021-04-22 10:35:17 +0100
commit47c7dc6a9bfc679f027984bd68523743b4d7734f (patch)
tree8ba1ec35c1e2c0b0229a78ccee3dfc91381b69f5 /src/types.cpp
parent65551ba8fb862a9caef97b3c84b17baa7715bbb6 (diff)
Add new intrinsics: debug_trap, trap, read_cycle_counter, expect
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp18
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);