1 /* { dg-options "-O3" } */
2 /* { dg-do run } */
3 
4 extern void abort (void);
5 
func(void)6 void func (void)
7 {
8   int i;
9   int nops;
10   char *codestr =
11     "|\000\000Ee\000\000Z\001\000d\000\000Z\002\000d\025\000Z\003\000"
12     "\t\t\t\t\t\t\t\t\t\t\t\td\026\000Z\004\000d\005\000\204\000\000Z"
13     "\005\000e\006\000e\a\000j\005\000e\b\000d\006\000\204\002\000\203"
14     "\001\000Z\t\000d\a\000\204\000\000Z\n\000d\b\000\204\000\000Z\v\000d"
15     "\t\000\204\000\000Z\f\000d\n\000\204\000\000Z\r\000e\016\000e\017\000d"
16     "\v\000\203\001\000d\f\000d\r\000\203\001\001Z\020\000e\016\000e\017"
17     "\000d\016\000\203\001\000d\f\000d\017\000\203\001\001Z\021\000e\016"
18     "\000e\017\000d\020\000\203\001\000d\f\000d\021\000\203\001\001Z\022"
19     "\000e\016\000e\017\000d\022\000\203\001\000d\f\000d\023\000\203\001"
20     "\001Z\023\000d\024\000S";
21   int codelen = 209;
22   int addrmap[500];
23 
24   for (i=0, nops=0 ; i<codelen ; i += ((codestr[i] >= 90) ? 3 : 1))
25     {
26       addrmap[i] = i - nops;
27       if (codestr[i] == 9)
28 	nops++;
29     }
30 
31   if (addrmap[0] != 0
32       || addrmap[3] != 3
33       || addrmap[4] != 4
34       || addrmap[7] != 7
35       || addrmap[10] != 10
36       || addrmap[13] != 13
37       || addrmap[16] != 16
38       || addrmap[19] != 19
39       || addrmap[22] != 22
40       || addrmap[23] != 22
41       || addrmap[24] != 22)
42     abort ();
43 }
44 
main()45 int main ()
46 {
47   func ();
48   return 0;
49 }
50