diff options
author | Chris Lattner <sabre@nondot.org> | 2003-04-23 19:09:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-04-23 19:09:22 +0000 |
commit | f5612b76bcbc8290b44f0e3deb677ee6ff0a95b8 (patch) | |
tree | 6016194cb81bf673b5ffad73f978e54fadb5902c | |
parent | d8c03bfa0a8cbcbf3ee31b0e9b52126c9dbafe2a (diff) |
Fix the super obnoxious "cast to pointer from integer of different size" warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5881 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 17 | ||||
-rw-r--r-- | lib/Target/CBackend/Writer.cpp | 17 |
2 files changed, 18 insertions, 16 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index dfe5ec2f58..f9ddc7d8c4 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -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)); } diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index dfe5ec2f58..f9ddc7d8c4 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -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)); } |