aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-04-23 19:09:22 +0000
committerChris Lattner <sabre@nondot.org>2003-04-23 19:09:22 +0000
commitf5612b76bcbc8290b44f0e3deb677ee6ff0a95b8 (patch)
tree6016194cb81bf673b5ffad73f978e54fadb5902c
parentd8c03bfa0a8cbcbf3ee31b0e9b52126c9dbafe2a (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.cpp17
-rw-r--r--lib/Target/CBackend/Writer.cpp17
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));
}