summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-04-13 13:10:26 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-04-13 13:10:26 +0800
commitf162dc9a43b209a000d90533176f6321e9192b8d (patch)
tree5e68d8bfe444f499eb6adfd5e795a009496c7161
parenta223ffb9d0629e8b498f07dc67f056a7fb95385e (diff)
downloadmrust-f162dc9a43b209a000d90533176f6321e9192b8d.tar.gz
Codegen C - Fix precedence error in 64/128 bit ctz
-rw-r--r--src/trans/codegen_c.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp
index 5d599dd5..165486ef 100644
--- a/src/trans/codegen_c.cpp
+++ b/src/trans/codegen_c.cpp
@@ -84,7 +84,7 @@ namespace {
<< "\treturn (v >> 32 != 0 ? __builtin_clz(v>>32) : 32 + __builtin_clz(v));\n"
<< "}\n"
<< "static inline uint64_t __builtin_ctz64(uint64_t v) {\n"
- << "\treturn (v&0xFFFFFFFF == 0 ? __builtin_ctz(v>>32) + 32 : __builtin_ctz(v));\n"
+ << "\treturn ((v&0xFFFFFFFF) == 0 ? __builtin_ctz(v>>32) + 32 : __builtin_ctz(v));\n"
<< "}\n"
<< "static inline unsigned __int128 __builtin_bswap128(unsigned __int128 v) {\n"
<< "\tuint64_t lo = __builtin_bswap64((uint64_t)v);\n"
@@ -95,7 +95,7 @@ namespace {
<< "\treturn (v >> 64 != 0 ? __builtin_clz64(v>>64) : 64 + __builtin_clz64(v));\n"
<< "}\n"
<< "static inline unsigned __int128 __builtin_ctz128(unsigned __int128 v) {\n"
- << "\treturn (v&0xFFFFFFFFFFFFFFFF == 0 ? __builtin_ctz64(v>>64) + 64 : __builtin_ctz64(v));\n"
+ << "\treturn ((v&0xFFFFFFFFFFFFFFFF) == 0 ? __builtin_ctz64(v>>64) + 64 : __builtin_ctz64(v));\n"
<< "}\n"
<< "\n"
<< "static inline void noop_drop(void *p) {}\n"