1 /* { dg-do compile } */
2 /* { dg-options "-O0 -gdwarf -dA" } */
3
4 #define True 1
5 #define False 0
6
F1(_Bool B1,_Bool B2)7 _Bool F1 (_Bool B1, _Bool B2)
8 {
9 _Bool R;
10
11 if (B1
12 && B2)
13 R = True;
14 else
15 R = False;
16 return R;
17 }
18
F2(_Bool B1,_Bool B2)19 _Bool F2 (_Bool B1, _Bool B2)
20 {
21 _Bool R;
22
23 R = B1
24 && B2;
25 return R;
26 }
27
F3(_Bool B1,_Bool B2)28 _Bool F3 (_Bool B1, _Bool B2)
29 {
30 _Bool R = False;
31
32 if (B1
33 && B2)
34 R = True;
35 return R;
36 }
37
F4(_Bool B1,_Bool B2)38 _Bool F4 (_Bool B1, _Bool B2)
39 {
40 _Bool R = False;
41
42 if (B1
43 || B2)
44 ;
45 else
46 R = True;
47 return R;
48 }
49
F5(_Bool B1,_Bool B2)50 _Bool F5 (_Bool B1, _Bool B2)
51 {
52 _Bool R = False;
53
54 if (!(B1
55 && B2))
56 R = True;
57 return R;
58 }
59
F8(_Bool B1,_Bool B2,_Bool B3,_Bool B4,_Bool B5,_Bool B6,_Bool B7,_Bool B8)60 _Bool F8 (_Bool B1, _Bool B2, _Bool B3, _Bool B4, _Bool B5, _Bool B6,
61 _Bool B7, _Bool B8)
62 {
63 _Bool R;
64
65 if ((B1
66 || B2)
67 && B3
68 && !(B4
69 || B5)
70 && (B6
71 || (B7
72 && B8)))
73 R = True;
74 else
75 R = False;
76 return R;
77 }
78
79 /* { dg-final { scan-assembler "short-circuit.c:11" } } */
80 /* { dg-final { scan-assembler "short-circuit.c:12" } } */
81 /* { dg-final { scan-assembler "short-circuit.c:13" } } */
82 /* { dg-final { scan-assembler "short-circuit.c:15" } } */
83
84 /* { dg-final { scan-assembler "short-circuit.c:23" } } */
85 /* { dg-final { scan-assembler "short-circuit.c:24" } } */
86
87 /* { dg-final { scan-assembler "short-circuit.c:32" } } */
88 /* { dg-final { scan-assembler "short-circuit.c:33" } } */
89 /* { dg-final { scan-assembler "short-circuit.c:34" } } */
90
91 /* { dg-final { scan-assembler "short-circuit.c:42" } } */
92 /* { dg-final { scan-assembler "short-circuit.c:43" } } */
93 /* { dg-final { scan-assembler "short-circuit.c:46" } } */
94
95 /* { dg-final { scan-assembler "short-circuit.c:54" } } */
96 /* { dg-final { scan-assembler "short-circuit.c:55" } } */
97 /* { dg-final { scan-assembler "short-circuit.c:56" } } */
98
99 /* { dg-final { scan-assembler "short-circuit.c:65" } } */
100 /* { dg-final { scan-assembler "short-circuit.c:66" } } */
101 /* { dg-final { scan-assembler "short-circuit.c:67" } } */
102 /* { dg-final { scan-assembler "short-circuit.c:68" } } */
103 /* { dg-final { scan-assembler "short-circuit.c:69" } } */
104 /* { dg-final { scan-assembler "short-circuit.c:70" } } */
105 /* { dg-final { scan-assembler "short-circuit.c:71" } } */
106 /* { dg-final { scan-assembler "short-circuit.c:72" } } */
107 /* { dg-final { scan-assembler "short-circuit.c:73" } } */
108 /* { dg-final { scan-assembler "short-circuit.c:75" } } */
109