modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/nest-align-1.c (about) 1 /* Test for alignment handling when a variable is accessed by nested 2 function. */ 3 /* Origin: Joey Ye <joey.ye@intel.com> */ 4 5 /* Force bigger stack alignment for PowerPC EABI targets. */ 6 /* { dg-options "-mno-eabi" { target powerpc-*-eabi* } } */ 7 8 #include <stddef.h> 9 10 typedef int aligned __attribute__((aligned)); 11 extern void abort (void); 12 13 void 14 check (int *i) 15 { 16 *i = 20; 17 if ((((ptrdiff_t) i) & (__alignof__(aligned) - 1)) != 0) 18 abort (); 19 } 20 21 void 22 foo (void) 23 { 24 aligned jj; 25 void bar () 26 { 27 jj = -20; 28 } 29 jj = 0; 30 bar (); 31 if (jj != -20) 32 abort (); 33 check (&jj); 34 if (jj != 20) 35 abort (); 36 } 37 38 int 39 main() 40 { 41 foo (); 42 return 0; 43 }