https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79051
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |poerpc64*-*-*
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-01-11
Host| |poerpc64*-*-*
Ever confirmed|0 |1
Build| |poerpc64*-*-*
--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
The test passes when the failing test case is moved into a function of its own.
I have seen this happen before with another test that depends on VRP but I
never got to the bottom of it.
index 5ce593e..d6b7b34 100644
--- a/gcc/testsuite/gcc.dg/attr-alloc_size-4.c
+++ b/gcc/testsuite/gcc.dg/attr-alloc_size-4.c
@@ -137,7 +137,6 @@ test_int_range (int n)
sink (f_int_1 (SAR (-3, 123)));
sink (f_int_1 (SAR (-4, 1234))); /* { dg-warning "argument 1 range
\\\[1235, \[0-9\]+\\\] exceeds maximum object size 1234" } */
sink (f_int_1 (SAR (min + 1, 1233)));
- sink (f_int_1 (SAR (min + 2, 1235))); /* { dg-warning "argument 1 range
\\\[1236, \[0-9\]+\\\] exceeds maximum object size 1234" } */
sink (f_int_1 (SAR (0, max))); /* { dg-warning "argument 1 range
\\\[-\[0-9\]*, -1\\\] is negative" } */
/* The range below includes zero which would be diagnosed by
-Walloc-size-zero but since all other values are negative it
@@ -146,6 +145,13 @@ test_int_range (int n)
sink (f_int_1 (SAR (2, max)));
}
+void foobar (void)
+{
+ const int min = INT_MIN;
+
+ sink (f_int_1 (SAR (min + 2, 1235))); /* { dg-warning "argument 1 range
\\\[1236, \[0-9\]+\\\] exceeds maximum object size 1234" } */
+}
+
void
test_size_cst (void)
{