1 // PR c++/5964
2 // This testcase failed to link on sparc -m64 -O0, because instruction
3 // lengths were incorrectly computed
4 // { dg-do link }
5 // { dg-options "-O0" }
6 
7 #define makecode for (int i = 1; i < 1000; ++i) i *= 3
8 #define muchcode \
9         makecode; makecode; makecode; makecode; makecode; makecode; \
10         makecode; makecode; makecode; makecode; makecode; makecode; \
11         makecode; makecode; makecode; makecode; makecode; makecode; \
12         makecode; makecode; makecode; makecode; makecode; makecode
13 
14 #define verymuchcode \
15         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
16         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
17         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
18         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
19         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
20         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
21         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
22         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
23         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
24         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
25         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
26         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
27         muchcode; muchcode; muchcode; muchcode; muchcode; muchcode
28 
29 int
main(int argc,char ** argv)30 main (int argc, char **argv)
31 {
32 loop:
33   verymuchcode;
34   delete[] argv;
35   goto loop;
36 }
37