]> granicus.if.org Git - llvm/commitdiff
Fix the super obnoxious "cast to pointer from integer of different size" warnings
authorChris Lattner <sabre@nondot.org>
Wed, 23 Apr 2003 19:09:22 +0000 (19:09 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Apr 2003 19:09:22 +0000 (19:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5881 91177308-0d34-0410-b5e6-96231b3b80d8

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

index dfe5ec2f58a6c25590be73cc905f40b5479ec483..f9ddc7d8c419fb5ba8a4767842f5717d5bbbc470 100644 (file)
@@ -946,13 +946,8 @@ void CWriter::visitBranchInst(BranchInst &I) {
 
 void CWriter::visitBinaryOperator(Instruction &I) {
   // binary instructions, shift instructions, setCond instructions.
-  if (isa<PointerType>(I.getType())) {
-    Out << "(";
-    printType(Out, I.getType());
-    Out << ")";
-  }
+  assert(!isa<PointerType>(I.getType()));
       
-  if (isa<PointerType>(I.getType())) Out << "(long long)";
   writeOperand(I.getOperand(0));
 
   switch (I.getOpcode()) {
@@ -975,14 +970,20 @@ void CWriter::visitBinaryOperator(Instruction &I) {
   default: std::cerr << "Invalid operator type!" << I; abort();
   }
 
-  if (isa<PointerType>(I.getType())) Out << "(long long)";
   writeOperand(I.getOperand(1));
 }
 
 void CWriter::visitCastInst(CastInst &I) {
   Out << "(";
-  printType(Out, I.getType(), string(""),/*ignoreName*/false, /*namedContext*/false);
+  printType(Out, I.getType(), string(""),/*ignoreName*/false,
+            /*namedContext*/false);
   Out << ")";
+  if (isa<PointerType>(I.getType())&&I.getOperand(0)->getType()->isIntegral() ||
+      isa<PointerType>(I.getOperand(0)->getType())&&I.getType()->isIntegral()) {
+    // Avoid "cast to pointer from integer of different size" warnings
+    Out << "(long)";  
+  }
+
   writeOperand(I.getOperand(0));
 }
 
index dfe5ec2f58a6c25590be73cc905f40b5479ec483..f9ddc7d8c419fb5ba8a4767842f5717d5bbbc470 100644 (file)
@@ -946,13 +946,8 @@ void CWriter::visitBranchInst(BranchInst &I) {
 
 void CWriter::visitBinaryOperator(Instruction &I) {
   // binary instructions, shift instructions, setCond instructions.
-  if (isa<PointerType>(I.getType())) {
-    Out << "(";
-    printType(Out, I.getType());
-    Out << ")";
-  }
+  assert(!isa<PointerType>(I.getType()));
       
-  if (isa<PointerType>(I.getType())) Out << "(long long)";
   writeOperand(I.getOperand(0));
 
   switch (I.getOpcode()) {
@@ -975,14 +970,20 @@ void CWriter::visitBinaryOperator(Instruction &I) {
   default: std::cerr << "Invalid operator type!" << I; abort();
   }
 
-  if (isa<PointerType>(I.getType())) Out << "(long long)";
   writeOperand(I.getOperand(1));
 }
 
 void CWriter::visitCastInst(CastInst &I) {
   Out << "(";
-  printType(Out, I.getType(), string(""),/*ignoreName*/false, /*namedContext*/false);
+  printType(Out, I.getType(), string(""),/*ignoreName*/false,
+            /*namedContext*/false);
   Out << ")";
+  if (isa<PointerType>(I.getType())&&I.getOperand(0)->getType()->isIntegral() ||
+      isa<PointerType>(I.getOperand(0)->getType())&&I.getType()->isIntegral()) {
+    // Avoid "cast to pointer from integer of different size" warnings
+    Out << "(long)";  
+  }
+
   writeOperand(I.getOperand(0));
 }