1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2
3 int
foo(void)4 foo (void)
5 {
6 int x;
7
8 asm goto ("": "=a" (x) : : : lab);
9 lab:
10 return x;
11 }
12
13 int
foo2(void)14 foo2 (void)
15 {
16 int x, y;
17
18 asm goto ("": "=a" (x), "=d" (y) : : : lab, lab2);
19 lab:
20 return x;
21 lab2:
22 return y;
23 }
24
25 int
foo3(void)26 foo3 (void)
27 {
28 int x, y, z;
29
30 asm goto ("": "=a" (x), "=d" (y), "=c" (z) : : : lab, lab2, lab3);
31 lab:
32 return x;
33 lab2:
34 return y;
35 lab3:
36 return z;
37 }
38
39 int
foo4(void)40 foo4 (void)
41 {
42 int x, y, z, v;
43
44 asm goto ("": "=a" (x), "=d" (y), "=c" (z) , "=b" (v) : : : lab, lab2, lab3, lab4);
45 lab:
46 return x;
47 lab2:
48 return y;
49 lab3:
50 return z;
51 lab4:
52 return v;
53 }
54
55 int
foo5(void)56 foo5 (void)
57 {
58 int x, y, z, v, w;
59
60 asm goto ("": "=a" (x), "=d" (y), "=c" (z), "=b" (v), "=S" (w) : : : lab, lab2, lab3, lab4, lab5);
61 lab:
62 return x;
63 lab2:
64 return y;
65 lab3:
66 return z;
67 lab4:
68 return v;
69 lab5:
70 return w;
71 }
72
73 int
foo6(void)74 foo6 (void)
75 {
76 int x = 0, y = 1, z = 2, v = 3, w = 4;
77
78 asm goto ("": "+a" (x), "+d" (y), "+c" (z), "+b" (v), "+S" (w) : : : lab, lab2, lab3, lab4, lab5);
79 lab:
80 return x;
81 lab2:
82 return y;
83 lab3:
84 return z;
85 lab4:
86 return v;
87 lab5:
88 return w;
89 }
90