Use INT64_C to emit constant values, to avoid problems with
authorDan Gohman <gohman@apple.com>
Fri, 17 Oct 2008 04:40:39 +0000 (04:40 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 17 Oct 2008 04:40:39 +0000 (04:40 +0000)
constants that don't fit in an int. This fixes
"this decimal constant is unsigned only in ISO C90"
warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57668 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 78239ec3348d77cc725e58b685853ad7f4eb4ef3..299612977a1f381f8cb5ea7c6dfb114a28387177 100644 (file)
@@ -444,7 +444,8 @@ public:
     if (N->isLeaf()) {
       if (IntInit *II = dynamic_cast<IntInit*>(N->getLeafValue())) {
         emitCheck("cast<ConstantSDNode>(" + RootName +
-                  ")->getSExtValue() == " + itostr(II->getValue()));
+                  ")->getSExtValue() == INT64_C(" +
+                  itostr(II->getValue()) + ")");
         return;
       } else if (!NodeIsComplexPattern(N)) {
         assert(0 && "Cannot match this as a leaf value!");
@@ -578,7 +579,7 @@ public:
           const char *MaskPredicate = N->getOperator()->getName() == "or"
             ? "CheckOrMask(" : "CheckAndMask(";
           emitCheck(MaskPredicate + RootName + "0, cast<ConstantSDNode>(" +
-                    RootName + "1), " + itostr(II->getValue()) + ")");
+                    RootName + "1), INT64_C(" + itostr(II->getValue()) + "))");
           
           EmitChildMatchCode(N->getChild(0), N, RootName + utostr(0), RootName,
                              ChainSuffix + utostr(0), FoundChain);