Do not let GCC emit a warning for INT64_MIN
authorChris Lattner <sabre@nondot.org>
Tue, 30 Nov 2004 21:33:58 +0000 (21:33 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 30 Nov 2004 21:33:58 +0000 (21:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18398 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/CBackend/CBackend.cpp
lib/Target/CBackend/Writer.cpp

index 7f6cadca49ce5b10cf360d82f71fb2f9494e4ff1..ab7a35aad72a465ce6293006f10f61ecfcb90f41 100644 (file)
@@ -536,13 +536,16 @@ void CWriter::printConstant(Constant *CPV) {
     Out << cast<ConstantSInt>(CPV)->getValue(); break;
   case Type::IntTyID:
     if ((int)cast<ConstantSInt>(CPV)->getValue() == (int)0x80000000)
-      Out << "((int)0x80000000)";   // Handle MININT specially to avoid warning
+      Out << "((int)0x80000000U)";   // Handle MININT specially to avoid warning
     else
       Out << cast<ConstantSInt>(CPV)->getValue();
     break;
 
   case Type::LongTyID:
-    Out << cast<ConstantSInt>(CPV)->getValue() << "ll"; break;
+    if (cast<ConstantSInt>(CPV)->isMinValue())
+      Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)";
+    else
+      Out << cast<ConstantSInt>(CPV)->getValue() << "ll"; break;
 
   case Type::UByteTyID:
   case Type::UShortTyID:
index 7f6cadca49ce5b10cf360d82f71fb2f9494e4ff1..ab7a35aad72a465ce6293006f10f61ecfcb90f41 100644 (file)
@@ -536,13 +536,16 @@ void CWriter::printConstant(Constant *CPV) {
     Out << cast<ConstantSInt>(CPV)->getValue(); break;
   case Type::IntTyID:
     if ((int)cast<ConstantSInt>(CPV)->getValue() == (int)0x80000000)
-      Out << "((int)0x80000000)";   // Handle MININT specially to avoid warning
+      Out << "((int)0x80000000U)";   // Handle MININT specially to avoid warning
     else
       Out << cast<ConstantSInt>(CPV)->getValue();
     break;
 
   case Type::LongTyID:
-    Out << cast<ConstantSInt>(CPV)->getValue() << "ll"; break;
+    if (cast<ConstantSInt>(CPV)->isMinValue())
+      Out << "(/*INT64_MIN*/(-9223372036854775807LL)-1)";
+    else
+      Out << cast<ConstantSInt>(CPV)->getValue() << "ll"; break;
 
   case Type::UByteTyID:
   case Type::UShortTyID: