From 49aeed74554d1b3705f3bbbc02e1f82aafca913c Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Wed, 6 Dec 2006 06:25:22 +0000 Subject: [PATCH] Fix upgrade of setcc with bool operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32266 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-upgrade/ParserInternals.h | 4 ++++ 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 7fe022efc1d..7487a581601 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 fd1c293ec30..e5757c42638 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"); -- 2.34.1