blob: 5b0071af2beccc36246ddf9406c087dde4b52f80 [file] [log] [blame]
/* { dg-do run } */
/* { dg-require-effective-target hwaddress_exec } */
/* Handling large aligned variables.
Large aligned variables take a different code-path through expand_stack_vars
in cfgexpand.c. This testcase is just to exercise that code-path.
The alternate code-path produces a second base-pointer through some
instructions emitted in the prologue.
Test cases are:
0) Valid access works without complaint.
1) Invalid access is caught. */
int __attribute__ ((noinline))
handle_large_alignment (int num)
{
int other_array[10];
int big_array[100] __attribute__ ((aligned (32)));
return big_array[num] + other_array[num];
}
#ifndef ARG
#define ARG 1
#endif
int global;
int __attribute__ ((noinline))
main ()
{
global += handle_large_alignment (ARG);
return 0;
}