analyzer: Use __builtin_alloca in gcc.dg/analyzer/call-summaries-2.c
Commit Message
gcc.dg/analyzer/call-summaries-2.c currently FAILs on Solaris:
FAIL: gcc.dg/analyzer/call-summaries-2.c (test for excess errors)
Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c:468:12: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/call-summaries-2.c:468:12: warning: incompatible implicit decl
alloca is only declared in <alloca.h>, which isn't included indirectly
anywhere. To avoid this, I switched the test to use __builtin_alloca
instead, following the vast majority of analyzer tests that use alloca.
Tested no i386-pc-solaris2.11, sparc-sun-solaris2.11, and
x86_64-pc-linux-gnu.
Ok for trunk?
There are a handful of tests that explicitly include <alloca.h> instead,
which is of course an alternative if preferred.
Rainer
Comments
On Wed, 2022-11-23 at 14:27 +0100, Rainer Orth wrote:
> gcc.dg/analyzer/call-summaries-2.c currently FAILs on Solaris:
>
> FAIL: gcc.dg/analyzer/call-summaries-2.c (test for excess errors)
>
> Excess errors:
> /vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/call-
> summaries-2.c:468:12: warning: implicit declaration of function
> 'alloca' [-Wimplicit-function-declaration]
> /vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/call-
> summaries-2.c:468:12: warning: incompatible implicit decl
>
> alloca is only declared in <alloca.h>, which isn't included
> indirectly
> anywhere. To avoid this, I switched the test to use __builtin_alloca
> instead, following the vast majority of analyzer tests that use
> alloca.
>
> Tested no i386-pc-solaris2.11, sparc-sun-solaris2.11, and
> x86_64-pc-linux-gnu.
>
> Ok for trunk?
Yes
Thanks
Dave
>
> There are a handful of tests that explicitly include <alloca.h>
> instead,
> which is of course an alternative if preferred.
>
> Rainer
>
@@ -465,7 +465,7 @@ int test_returns_external_result (void)
int uses_alloca (int i)
{
- int *p = alloca (sizeof (int));
+ int *p = __builtin_alloca (sizeof (int));
*p = i;
return *p;
}