@@ -1,3 +1,5 @@
+/* { dg-require-effective-target alloca } */
+
#include <stdlib.h>
#include "analyzer-decls.h"
@@ -53,7 +55,7 @@ test_malloc (void)
void
test_alloca (size_t sz)
{
- void *p = alloca (sz);
+ void *p = __builtin_alloca (sz);
__analyzer_dump_capacity (p); /* { dg-warning "capacity: 'INIT_VAL\\(sz_\[^\n\r\]*\\)'" } */
}
@@ -1,10 +1,12 @@
+/* { dg-require-effective-target alloca } */
+
#include <stdlib.h>
#include "analyzer-decls.h"
static void __attribute__((noinline))
__analyzer_callee_1 (size_t inner_sz)
{
- void *p = alloca (inner_sz);
+ void *p = __builtin_alloca (inner_sz);
__analyzer_dump_capacity (p); /* { dg-warning "capacity: 'INIT_VAL\\(outer_sz_\[^\n\r\]*\\)'" } */
}
Successfully regrtested on x86_64-pc-linux-gnu. Pushed to trunk as r12-5329-ga80d4e098b10d5cd161f55e4fce64a6be9683ed3. gcc/testsuite/ChangeLog: PR analyzer/102779 * gcc.dg/analyzer/capacity-1.c: Add dg-require-effective-target alloca. Use __builtin_alloca rather than alloca. * gcc.dg/analyzer/capacity-3.c: Likewise. Signed-off-by: David Malcolm <dmalcolm@redhat.com> --- gcc/testsuite/gcc.dg/analyzer/capacity-1.c | 4 +++- gcc/testsuite/gcc.dg/analyzer/capacity-3.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-)