mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Fix upgrade of setcc with bool operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32266 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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(); }
|
||||
|
@@ -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");
|
||||
|
Reference in New Issue
Block a user