aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-12-13 12:48:18 +0100
committerMichael Matz <matz@suse.de>2016-12-15 17:49:56 +0100
commitb155432b65983df148ce6ce0e7bdc07d80c81d0e (patch)
treea1db1c2a796ad4c378add302a852453333c34223
parentb5b12b89a0342308747f956d04ecd7015b2d6d8b (diff)
downloadtinycc-b155432b65983df148ce6ce0e7bdc07d80c81d0e.tar.gz
tinycc-b155432b65983df148ce6ce0e7bdc07d80c81d0e.tar.bz2
arm64: Fix largeptr test
VT_PTR needs to be handled like VT_LLONG.
-rw-r--r--arm64-gen.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arm64-gen.c b/arm64-gen.c
index 5bb8e24..4b2608a 100644
--- a/arm64-gen.c
+++ b/arm64-gen.c
@@ -1326,7 +1326,8 @@ static int arm64_iconst(uint64_t *val, SValue *sv)
return 0;
if (val) {
int t = sv->type.t;
- *val = ((t & VT_BTYPE) == VT_LLONG ? sv->c.i :
+ int bt = t & VT_BTYPE;
+ *val = ((bt == VT_LLONG || bt == VT_PTR) ? sv->c.i :
(uint32_t)sv->c.i |
(t & VT_UNSIGNED ? 0 : -(sv->c.i & 0x80000000)));
}