aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-06 06:25:22 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-06 06:25:22 +0000
commit49aeed74554d1b3705f3bbbc02e1f82aafca913c (patch)
tree915d5acbbfc3f8c49b7401dcbd9d61f0f230873d
parent2fcfdb79d0d1d2297d7aced11b567cd52494604e (diff)
Fix upgrade of setcc with bool operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32266 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/llvm-upgrade/ParserInternals.h4
-rw-r--r--tools/llvm-upgrade/UpgradeParser.y4
2 files changed, 6 insertions, 2 deletions
diff --git a/tools/llvm-upgrade/ParserInternals.h b/tools/llvm-upgrade/ParserInternals.h
index 7fe022efc1..7487a58160 100644
--- a/tools/llvm-upgrade/ParserInternals.h
+++ b/tools/llvm-upgrade/ParserInternals.h
@@ -78,6 +78,10 @@ struct TypeInfo {
oldTy == UIntTy || oldTy == ULongTy;
}
+ bool isBool() const {
+ return oldTy == BoolTy;
+ }
+
bool isSignless() const { return !isSigned() && !isUnsigned(); }
bool isInteger() const { return isSigned() || isUnsigned(); }
bool isIntegral() const { return oldTy == BoolTy || isInteger(); }
diff --git a/tools/llvm-upgrade/UpgradeParser.y b/tools/llvm-upgrade/UpgradeParser.y
index fd1c293ec3..e5757c4263 100644
--- a/tools/llvm-upgrade/UpgradeParser.y
+++ b/tools/llvm-upgrade/UpgradeParser.y
@@ -23,7 +23,7 @@
#define YYERROR_VERBOSE 1
#define YYINCLUDED_STDLIB_H
#define YYDEBUG 1
-#define UPGRADE_SETCOND_OPS 0
+#define UPGRADE_SETCOND_OPS 1
int yylex(); // declaration" of xxx warnings.
int yyparse();
@@ -255,7 +255,7 @@ getCompareOp(const std::string& setcc, const TypeInfo& TI) {
result.erase(5,1);
else if (TI.isSigned())
result[5] = 's';
- else if (TI.isUnsigned() || TI.isPointer())
+ else if (TI.isUnsigned() || TI.isPointer() || TI.isBool())
result[5] = 'u';
else
yyerror("Invalid integral type for setcc");