Fix clang narrowing error in GroupVarintTables
authorAndrew Gallagher <agallagher@fb.com>
Thu, 14 Jun 2012 19:24:31 +0000 (12:24 -0700)
committerTudor Bosman <tudorb@fb.com>
Thu, 14 Jun 2012 19:35:55 +0000 (12:35 -0700)
Summary:
The __m128i type is a pair of 64-bit signed ints and the values
generated in generate_varint_tables.py overflow this range, which
causes clang to complain.

Test Plan:
Built and ran unittests.  Also verified that the GroupVarintTable.o
data section was identical with and w/o this change.

Reviewed By: tudorb@fb.com

FB internal diff: D494645

folly/build/generate_varint_tables.py

index 6bd88a0c0abf9c5613b771476be101b4a39907eb..55375d2ff52812199cc464110e17d6d8cb038e2c 100755 (executable)
@@ -73,7 +73,8 @@ def generate(f):
             # 0xff: set corresponding byte in result to 0
             for k in range(d, 4):
                 vals[j] |= 0xff << (8 * k)
-        f.write("  {{0x{1:08x}{0:08x}LL, 0x{3:08x}{2:08x}LL}},\n".format(*vals))
+        f.write("  {{static_cast<int64_t>(0x{1:08x}{0:08x}), "
+            "static_cast<int64_t>(0x{3:08x}{2:08x})}},\n".format(*vals))
 
     f.write("};\n"
             "\n"