xbolva00 updated this revision to Diff 167858.
xbolva00 added a comment.
fixed extra new line
https://reviews.llvm.org/D52750
Files:
lib/Sema/SemaType.cpp
test/Sema/integer-overflow.c
Index: test/Sema/integer-overflow.c
===================================================================
--- test/Sema/integer-overflow.c
+++ test/Sema/integer-overflow.c
@@ -172,6 +172,9 @@
// expected-warning@+1 {{overflow in expression; result is 536870912 with type
'int'}}
(void)f2(0, f0(4608 * 1024 * 1024));
}
+void check_integer_overflows_in_array_size() {
+ int arr[4608 * 1024 * 1024]; // expected-warning {{overflow in expression;
result is 536870912 with type 'int'}}
+}
struct s {
unsigned x;
Index: lib/Sema/SemaType.cpp
===================================================================
--- lib/Sema/SemaType.cpp
+++ lib/Sema/SemaType.cpp
@@ -2228,6 +2228,9 @@
<< ConstVal.toString(10) << ArraySize->getSourceRange();
return QualType();
}
+
+ if (isa<BinaryOperator>(ArraySize))
+ ArraySize->EvaluateForOverflow(Context);
}
T = Context.getConstantArrayType(T, ConstVal, ASM, Quals);
Index: test/Sema/integer-overflow.c
===================================================================
--- test/Sema/integer-overflow.c
+++ test/Sema/integer-overflow.c
@@ -172,6 +172,9 @@
// expected-warning@+1 {{overflow in expression; result is 536870912 with type 'int'}}
(void)f2(0, f0(4608 * 1024 * 1024));
}
+void check_integer_overflows_in_array_size() {
+ int arr[4608 * 1024 * 1024]; // expected-warning {{overflow in expression; result is 536870912 with type 'int'}}
+}
struct s {
unsigned x;
Index: lib/Sema/SemaType.cpp
===================================================================
--- lib/Sema/SemaType.cpp
+++ lib/Sema/SemaType.cpp
@@ -2228,6 +2228,9 @@
<< ConstVal.toString(10) << ArraySize->getSourceRange();
return QualType();
}
+
+ if (isa<BinaryOperator>(ArraySize))
+ ArraySize->EvaluateForOverflow(Context);
}
T = Context.getConstantArrayType(T, ConstVal, ASM, Quals);
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits