diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-12-06 06:25:22 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-12-06 06:25:22 +0000 |
commit | 49aeed74554d1b3705f3bbbc02e1f82aafca913c (patch) | |
tree | 915d5acbbfc3f8c49b7401dcbd9d61f0f230873d | |
parent | 2fcfdb79d0d1d2297d7aced11b567cd52494604e (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.h | 4 | ||||
-rw-r--r-- | tools/llvm-upgrade/UpgradeParser.y | 4 |
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"); |