PR20659. Patch by Anders Rönnholm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216076
91177308-0d34-0410-b5e6-
96231b3b80d8
case Stmt::IntegerLiteralClass: {
const IntegerLiteral *IntLit1 = cast<IntegerLiteral>(Stmt1);
const IntegerLiteral *IntLit2 = cast<IntegerLiteral>(Stmt2);
- return IntLit1->getValue() == IntLit2->getValue();
+
+ llvm::APInt I1 = IntLit1->getValue();
+ llvm::APInt I2 = IntLit2->getValue();
+ if (I1.getBitWidth() != I2.getBitWidth())
+ return false;
+ return I1 == I2;
}
case Stmt::FloatingLiteralClass: {
const FloatingLiteral *FloatLit1 = cast<FloatingLiteral>(Stmt1);
void test_nowarn_wchar() {
const wchar_t * a = 0 ? L"No" : L"Warning";
}
+
+void test_nowarn_long() {
+ int a =0, b = 0;
+ long c;
+ if (0) {
+ b -= a;
+ c = 0;
+ } else { // no-warning
+ b -= a;
+ c = 0xFFFFFFFFFFFFFFFF;
+ }
+}