xref: /llvm-project/clang/test/CodeGenCXX/switch-case-folding.cpp (revision 7c4dcf4b93dd08011892c6405a4cef22077182fd)
160bb82a5SFariborz Jahanian // RUN: %clang_cc1 %s -emit-llvm-only
260bb82a5SFariborz Jahanian // CHECK that we don't crash.
360bb82a5SFariborz Jahanian 
main(void)460bb82a5SFariborz Jahanian int main(void){
560bb82a5SFariborz Jahanian 	int x = 12;
660bb82a5SFariborz Jahanian 	// Make sure we don't crash when constant folding the case 4
760bb82a5SFariborz Jahanian 	// statement due to the case 5 statement contained in the do loop
860bb82a5SFariborz Jahanian 	switch (4) {
9*7c4dcf4bSFariborz Jahanian 		case 4: do {
10*7c4dcf4bSFariborz Jahanian                      switch (6)  {
11*7c4dcf4bSFariborz Jahanian                        case 6: {
12*7c4dcf4bSFariborz Jahanian                          case 5: x++;
13*7c4dcf4bSFariborz Jahanian                        };
14*7c4dcf4bSFariborz Jahanian                      };
15*7c4dcf4bSFariborz Jahanian                 } while (x < 100);
1660bb82a5SFariborz Jahanian 	}
1760bb82a5SFariborz Jahanian 	return x;
1860bb82a5SFariborz Jahanian }
19