modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/941014-2.c (about) 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct { 5 unsigned short a; 6 unsigned short b; 7 } foo_t; 8 9 void a1 (unsigned long offset) {} 10 11 volatile foo_t * 12 f () 13 { 14 volatile foo_t *foo_p = (volatile foo_t *)malloc (sizeof (foo_t)); 15 16 a1((unsigned long)foo_p-30); 17 if (foo_p->a & 0xf000) 18 printf("%d\n", foo_p->a); 19 foo_p->b = 0x0100; 20 a1 ((unsigned long)foo_p + 2); 21 a1 ((unsigned long)foo_p - 30); 22 return foo_p; 23 } 24 25 main () 26 { 27 volatile foo_t *foo_p; 28 29 foo_p = f (); 30 if (foo_p->b != 0x0100) 31 abort (); 32 exit (0); 33 }