dead-stores.c revision a5495eadc816b29954e22df55aa9a9d6bb41429c
1d7d5f0223bd30dfd618762349c6209dd1d5ea3e6Daniel Dunbar// RUN: clang-cc -analyze -warn-dead-stores -verify %s &&
2d7d5f0223bd30dfd618762349c6209dd1d5ea3e6Daniel Dunbar// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=basic -warn-dead-stores -verify %s &&
3c037eac3bda3c636c961aab6377beea3242e81e4Ted Kremenek// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic-old-cast -analyzer-constraints=basic -warn-dead-stores -verify %s &&
4d7d5f0223bd30dfd618762349c6209dd1d5ea3e6Daniel Dunbar// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=range -warn-dead-stores -verify %s &&
5c037eac3bda3c636c961aab6377beea3242e81e4Ted Kremenek// RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic-old-cast -analyzer-constraints=range -warn-dead-stores -verify %s &&
6d7d5f0223bd30dfd618762349c6209dd1d5ea3e6Daniel Dunbar// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=basic -warn-dead-stores -verify %s &&
7d7d5f0223bd30dfd618762349c6209dd1d5ea3e6Daniel Dunbar// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=range -warn-dead-stores -verify %s
88aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek
949a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f1() {
10aa395ba050c558b1ebf66c7868165938d98b6a5bTed Kremenek  int k, y;
110fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek  int abc=1;
121a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  long idx=abc+3*5; // expected-warning {{never read}}
13aa395ba050c558b1ebf66c7868165938d98b6a5bTed Kremenek}
148aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek
1549a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f2(void *b) {
168aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek char *c = (char*)b; // no-warning
171a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek char *d = b+1; // expected-warning {{never read}}
18a316e7b735b12ce6b34961a9dcfaae34f4b08d29Douglas Gregor printf("%s", c); // expected-warning{{implicitly declaring C library function 'printf' with type 'int (char const *, ...)'}} \
19a316e7b735b12ce6b34961a9dcfaae34f4b08d29Douglas Gregor // expected-note{{please include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
208aefcbfd3c0409c26ca44c123a41edd631eab9bcTed Kremenek}
2174c43a0967d07572dd6907776d91cdb2b2e7179aTed Kremenek
2249a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f3() {
230fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek  int r;
240fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek  if ((r = f()) != 0) { // no-warning
250fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek    int y = r; // no-warning
260fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek    printf("the error is: %d\n", y);
270fdf06e5eef80ce56ce6499ba662453919b95af1Ted Kremenek  }
2874c43a0967d07572dd6907776d91cdb2b2e7179aTed Kremenek}
2949a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek
3049a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenekvoid f4(int k) {
3149a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek
3249a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek  k = 1;
3349a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek
3449a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek  if (k)
3549a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek    f1();
3649a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek
371a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  k = 2;  // expected-warning {{never read}}
3849a2fd2758996b6f674babf19c75b3d01e77e2d4Ted Kremenek}
39f87821c086a46411883b385c743996a35cc8e154Ted Kremenek
40f87821c086a46411883b385c743996a35cc8e154Ted Kremenekvoid f5() {
41f87821c086a46411883b385c743996a35cc8e154Ted Kremenek
42f87821c086a46411883b385c743996a35cc8e154Ted Kremenek  int x = 4; // no-warning
431a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  int *p = &x; // expected-warning{{never read}}
44f87821c086a46411883b385c743996a35cc8e154Ted Kremenek
45a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek}
46a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek
47a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenekint f6() {
48a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek
49a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek  int x = 4;
501a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  ++x; // expected-warning{{never read}}
51a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek  return 1;
52a23157e6b9e2388edebd3d383dd7acfab6a4c0c0Ted Kremenek}
531a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek
541a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenekint f7(int *p) {
551a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  // This is allowed for defensive programming.
561a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  p = 0; // no-warning
571a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  return 1;
581a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek}
591a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek
601a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenekint f8(int *p) {
614489fe10fa073eb326e2c8906db170f009050911Daniel Dunbar  extern int *baz();
621a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  if (p = baz()) // expected-warning{{Although the value}}
631a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek    return 1;
641a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek  return 0;
651a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek}
661a654b60ef40e84f3943cdb581795c4d4dae1e45Ted Kremenek
672cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenekint f9() {
682cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  int x = 4;
692cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  x = x + 10; // expected-warning{{never read}}
702cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  return 1;
712cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek}
722cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek
732cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenekint f10() {
742cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  int x = 4;
752cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  x = 10 + x; // expected-warning{{never read}}
762cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek  return 1;
772cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek}
782cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek
798b00b6e80dbeb04dd919699f7818344dd4cbaad9Ted Kremenekint f11() {
808b00b6e80dbeb04dd919699f7818344dd4cbaad9Ted Kremenek  int x = 4;
81380277e46ec1d2d9abedcddf357ceea935cbe576Ted Kremenek  return x++; // expected-warning{{never read}}
828b00b6e80dbeb04dd919699f7818344dd4cbaad9Ted Kremenek}
838b00b6e80dbeb04dd919699f7818344dd4cbaad9Ted Kremenek
84380277e46ec1d2d9abedcddf357ceea935cbe576Ted Kremenekint f11b() {
85380277e46ec1d2d9abedcddf357ceea935cbe576Ted Kremenek  int x = 4;
867f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek  return ((((++x)))); // no-warning
87380277e46ec1d2d9abedcddf357ceea935cbe576Ted Kremenek}
88380277e46ec1d2d9abedcddf357ceea935cbe576Ted Kremenek
89fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenekint f12a(int y) {
90fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek  int x = y;  // expected-warning{{never read}}
91fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek  return 1;
92fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek}
93fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenekint f12b(int y) {
94fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek  int x __attribute__((unused)) = y;  // no-warning
95fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek  return 1;
96fc7ff5540412f8003024e1b4940fb8408dff2ca6Ted Kremenek}
972cfac226b028e5a2165af077268f70cd2ab4b1a8Ted Kremenek
98efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek// Filed with PR 2630.  This code should produce no warnings.
99efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenekint f13(void)
100efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek{
101efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek  int a = 1;
102efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek  int b, c = b = a + a;
103efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek
104efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek  if (b > 0)
105efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek    return (0);
106efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek
107efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek  return (a + b + c);
108efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek}
109efe88f5776b42ec2defb8ba29269a6c3683e9485Ted Kremenek
110b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek// Filed with PR 2763.
11184fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenekint f14(int count) {
112b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek  int index, nextLineIndex;
113b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek  for (index = 0; index < count; index = nextLineIndex+1) {
114b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek    nextLineIndex = index+1;  // no-warning
115b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek    continue;
116b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek  }
117b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek  return index;
118b497ebdce35c708e902db2d49183925a612b4914Ted Kremenek}
11984fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek
12084fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek// Test case for <rdar://problem/6248086>
12184fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenekvoid f15(unsigned x, unsigned y) {
12284fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek  int count = x * y;   // no-warning
12384fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek  int z[count];
12484fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek}
12584fa6b90abf73e8cc539c9947ed5a6286f588569Ted Kremenek
126610a09e409bea151a42dd907768f1e0c4b103f1fTed Kremenekint f16(int x) {
127610a09e409bea151a42dd907768f1e0c4b103f1fTed Kremenek  x = x * 2;
128d2025e26738c3017af6685e342a3a746cdf8249fTed Kremenek  x = sizeof(int [x = (x || x + 1) * 2]) // expected-warning{{Although the value stored to 'x' is used}}
129d2025e26738c3017af6685e342a3a746cdf8249fTed Kremenek      ? 5 : 8;
130610a09e409bea151a42dd907768f1e0c4b103f1fTed Kremenek  return x;
131610a09e409bea151a42dd907768f1e0c4b103f1fTed Kremenek}
132610a09e409bea151a42dd907768f1e0c4b103f1fTed Kremenek
1333b58786f85aaa173e122f6eaff0b6efa233d59a2Ted Kremenek// Self-assignments should not be flagged as dead stores.
134a5495eadc816b29954e22df55aa9a9d6bb41429cMike Stumpvoid f17() {
1353b58786f85aaa173e122f6eaff0b6efa233d59a2Ted Kremenek  int x = 1;
1363b58786f85aaa173e122f6eaff0b6efa233d59a2Ted Kremenek  x = x; // no-warning
1373b58786f85aaa173e122f6eaff0b6efa233d59a2Ted Kremenek}
1387f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek
1397f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek// <rdar://problem/6506065>
1407f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek// The values of dead stores are only "consumed" in an enclosing expression
141cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump// what that value is actually used.  In other words, don't say "Although the
142cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump// value stored to 'x' is used...".
1437f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenekint f18() {
1447f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   int x = 0; // no-warning
1457f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   if (1)
1467f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek      x = 10;  // expected-warning{{Value stored to 'x' is never read}}
1477f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   while (1)
1487f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek      x = 10;  // expected-warning{{Value stored to 'x' is never read}}
1497f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   do
1507f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek      x = 10;   // expected-warning{{Value stored to 'x' is never read}}
1517f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   while (1);
1527f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek
1537f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek   return (x = 10); // expected-warning{{Although the value stored to 'x' is used in the enclosing expression, the value is never actually read from 'x'}}
1547f5fce7200fdbf03f7d70134a57271e584fcb766Ted Kremenek}
155d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek
156d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek// PR 3514: false positive `dead initialization` warning for init to global
157d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek//  http://llvm.org/bugs/show_bug.cgi?id=3514
158d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenekextern const int MyConstant;
159d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenekint f19(void) {
160d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  int x = MyConstant;  // no-warning
161d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  x = 1;
162d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  return x;
163d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek}
164d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek
16528433ff063fe5ba5eac486d4bfcfa9e210097772Ted Kremenekint f19b(void) { // This case is the same as f19.
166d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  const int MyConstant = 0;
16728433ff063fe5ba5eac486d4bfcfa9e210097772Ted Kremenek  int x = MyConstant; // no-warning
168d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  x = 1;
169d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek  return x;
170d3098ee64c069a3eff4d2d0a5d655d968c7b5dd2Ted Kremenek}
171632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenek
172632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenekvoid f20(void) {
173632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenek  int x = 1; // no-warning
174632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenek#pragma unused(x)
175632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenek}
176632d1ece2715b1c8a0c99e1b8b487f4c148c89d5Ted Kremenek
177cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stumpvoid halt() __attribute__((noreturn));
178cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stumpint f21() {
179cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump  int x = 4;
180cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump
181cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump  ++x; // expected-warning{{never read}}
182cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump  if (1) {
183cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump    halt();
184cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump    (void)x;
185cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump  }
186cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump  return 1;
187cd7bf230a77c550115e4a78ee371fc49a7563692Mike Stump}
188e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump
189e5af3ce53ec58995b09381ba645ab2117a46647bMike Stumpint j;
190e5af3ce53ec58995b09381ba645ab2117a46647bMike Stumpvoid f22() {
191e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int x = 4;
192e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y1 = 4;
193e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y2 = 4;
194e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y3 = 4;
195e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y4 = 4;
196e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y5 = 4;
197e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y6 = 4;
198e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y7 = 4;
199e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y8 = 4;
200e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y9 = 4;
201e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  int y10 = 4;
2025f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  int y11 = 4;
2035f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  int y12 = 4;
204fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  int y13 = 4;
205fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  int y14 = 4;
206fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  int y15 = 4;
2078f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  int y16 = 4;
2088f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  int y17 = 4;
2098f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  int y18 = 4;
21022cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  int y19 = 4;
21122cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  int y20 = 4;
212e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump
213e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++x; // expected-warning{{never read}}
214e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y1;
215e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y2;
216e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y3;
217e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y4;
218e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y5;
219e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y6;
220e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y7;
221e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y8;
222e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y9;
223e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  ++y10;
2245f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  ++y11;
2255f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  ++y12;
226fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  ++y13;
227fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  ++y14;
228fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  ++y15;
2298f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  ++y16;
2308f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  ++y17;
2318f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  ++y18;
23222cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  ++y19;
23322cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  ++y20;
234e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump
235e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  switch (j) {
236e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 1:
237e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    if (0)
238e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)x;
239e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    if (1) {
240e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)y1;
241e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      return;
242e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    }
243e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
244e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
245e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 2:
246e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    if (0)
247e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)x;
248e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    else {
249e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)y2;
250e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      return;
251e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    }
252e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
253e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
254e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 3:
255e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    if (1) {
256e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)y3;
257e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      return;
258e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    } else
259e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump      (void)x;
260e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
261e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  break;
262e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 4:
263e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    0 ? : ((void)y4, ({ return; }));
264e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
265e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
266e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 5:
267e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    1 ? : (void)x;
268e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    0 ? (void)x : ((void)y5, ({ return; }));
269e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
270e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
271e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 6:
272e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    1 ? ((void)y6, ({ return; })) : (void)x;
273e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
274e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
275e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 7:
276e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)(0 && x);
277e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)y7;
278e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)(0 || (y8, ({ return; }), 1));
279e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
280e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
281e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 8:
282e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)(1 && (y9, ({ return; }), 1));
283e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)x;
284e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    break;
285e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  case 9:
286e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)(1 || x);
287e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump    (void)y10;
2885f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump    break;
2895f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  case 10:
2908f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    while (0) {
2918f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump      (void)x;
2925f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump    }
2938f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    (void)y11;
2945f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump    break;
2955f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump  case 11:
2968f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    while (1) {
2978f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump      (void)y12;
2985f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump    }
2998f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    (void)x;
3005f20363dc8ea094b3f6139f52084beb10d6fcd85Mike Stump    break;
301fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump  case 12:
3028f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    do {
303fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump      (void)y13;
3048f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    } while (0);
3058f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    (void)y14;
3068f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    break;
3078f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  case 13:
3088f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    do {
3098f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump      (void)y15;
3108f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    } while (1);
3118f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    (void)x;
3128f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    break;
3138f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  case 14:
3148f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    for (;;) {
3158f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump      (void)y16;
316fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    }
317fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    (void)x;
318fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    break;
3198f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  case 15:
320fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    for (;1;) {
3218f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump      (void)y17;
322fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    }
323fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    (void)x;
324fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    break;
3258f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump  case 16:
326fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    for (;0;) {
327fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump      (void)x;
328fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    }
3298f9893a2beeacd5149bd2d3d4c6e130516915068Mike Stump    (void)y18;
330fefb9f7009702befaf715e7a8debc9505c3c8634Mike Stump    break;
33122cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  case 17:
33222cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    __builtin_choose_expr(0, (void)x, ((void)y19, ({ return; })));
33322cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    (void)x;
33422cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    break;
33522cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump  case 19:
33622cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    __builtin_choose_expr(1, ((void)y20, ({ return; })), (void)x);
33722cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    (void)x;
33822cd6581188bbbc6bedaca64ab171b1187a1c06aMike Stump    break;
339e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump  }
340e5af3ce53ec58995b09381ba645ab2117a46647bMike Stump}
341