Fixed PR#596:
authorJohn Criswell <criswell@uiuc.edu>
Thu, 14 Jul 2005 19:41:16 +0000 (19:41 +0000)
committerJohn Criswell <criswell@uiuc.edu>
Thu, 14 Jul 2005 19:41:16 +0000 (19:41 +0000)
Add parenthesis around the value being negated; that way, if the value
begins with a minus sign (e.g. negative integer), we won't generate a
C predecrement operator by mistake.

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

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

index f821a77caa57408973ac5a1e7f7448b21d5149a7..b29187b154f3409561e9a14de35cd48041b9d452 100644 (file)
@@ -1361,9 +1361,9 @@ void CWriter::visitBinaryOperator(Instruction &I) {
   // If this is a negation operation, print it out as such.  For FP, we don't
   // want to print "-0.0 - X".
   if (BinaryOperator::isNeg(&I)) {
-    Out << "-";
+    Out << "-(";
     writeOperand(BinaryOperator::getNegArgument(cast<BinaryOperator>(&I)));
-
+    Out << ")";
   } else {
     writeOperand(I.getOperand(0));
 
index f821a77caa57408973ac5a1e7f7448b21d5149a7..b29187b154f3409561e9a14de35cd48041b9d452 100644 (file)
@@ -1361,9 +1361,9 @@ void CWriter::visitBinaryOperator(Instruction &I) {
   // If this is a negation operation, print it out as such.  For FP, we don't
   // want to print "-0.0 - X".
   if (BinaryOperator::isNeg(&I)) {
-    Out << "-";
+    Out << "-(";
     writeOperand(BinaryOperator::getNegArgument(cast<BinaryOperator>(&I)));
-
+    Out << ")";
   } else {
     writeOperand(I.getOperand(0));