PR middle-end/85602 - -Wsizeof-pointer-memaccess for strncat with size of source
[official-gcc.git] / gcc / testsuite / c-c++-common / Wduplicated-cond-3.c
blobf928357aec42b9b5a970dad8af17ca7116a8d678
1 /* PR c/64249 */
2 /* { dg-do compile } */
3 /* { dg-options "-Wall -Wno-duplicated-cond" } */
5 #ifndef __cplusplus
6 # define bool _Bool
7 # define true 1
8 # define false 0
9 #endif
11 extern int foo (void);
13 int
14 fn1 (int n)
16 if (n == 1)
17 return -1;
18 else if (n == 2)
19 return 0;
20 else if (n == 1)
21 return 1;
22 return 0;
25 int
26 fn2 (void)
28 if (4)
29 return 1;
30 else if (4)
31 return 2;
33 #define N 10
34 if (N)
35 return 3;
36 else if (N)
37 return 4;
40 int
41 fn3 (int n)
43 if (n == 42)
44 return 1;
45 if (n == 42)
46 return 2;
48 if (n)
49 if (n)
50 if (n)
51 if (n)
52 return 42;
54 if (!n)
55 return 10;
56 else
57 return 11;
60 int
61 fn4 (int n)
63 if (n > 0)
65 if (n == 1)
66 return 1;
67 else if (n == 1)
68 return 2;
70 else if (n < 0)
72 if (n < -1)
73 return 6;
74 else if (n < -2)
76 if (n == -10)
77 return 3;
78 else if (n == -10)
79 return 4;
82 else
83 return 7;
84 return 0;
87 struct S { long p, q; };
89 int
90 fn5 (struct S *s)
92 if (!s->p)
93 return 12345;
94 else if (!s->p)
95 return 1234;
96 return 0;
99 int
100 fn6 (int n)
102 if (n)
103 return n;
104 else if (n)
105 return n;
106 else if (n)
107 return n;
108 else if (n)
109 return n;
110 else if (n)
111 return n;
112 else if (n)
113 return n;
114 else if (n)
115 return n;
116 else if (n)
117 return n;
118 return 0;
122 fn7 (int n)
124 if (n == 0)
125 return 10;
126 else if (n == 1)
127 return 11;
128 else if (n == 2)
129 return 12;
130 else if (n == 3)
131 return 13;
132 else if (n == 4)
133 return 14;
134 else if (n == 5)
135 return 15;
136 else if (n == 6)
137 return 16;
138 else if (n == 7)
139 return 17;
140 else if (n == 0)
141 return 100;
142 else if (n == 1)
143 return 101;
144 else if (n == 2)
145 return 102;
146 else if (n == 3)
147 return 103;
148 else if (n == 4)
149 return 104;
150 else if (n == 5)
151 return 105;
152 else if (n == 6)
153 return 106;
154 else if (n == 7)
155 return 107;
156 return 0;
160 fn8 (bool b)
162 if (!b)
163 return 16;
164 else if (!b)
165 return 27;
166 else
167 return 64;
171 fn9 (int i, int j, int k)
173 if ((i > 0 && j > 0 && k > 0)
174 && ((i > 11 && j == 76 && k < 10)
175 || (i < 0 && j == 99 && k > 103)))
176 return -999;
177 else
178 if ((i > 0 && j > 0 && k > 0)
179 && ((i > 11 && j == 76 && k < 10)
180 || (i < 0 && j == 99 && k > 103)))
181 return 999;
182 else
183 return 0;
187 fn10 (void)
189 if (foo ())
190 return 17329;
191 else if (foo ())
192 return 18409;
193 return 0;
197 fn11 (int n)
199 if (++n == 10)
200 return 666;
201 else if (++n == 10)
202 return 9;
203 return 0;