17c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian// RUN: %clang_cc1 %s -emit-llvm-only
27c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian// CHECK that we don't crash.
37c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian
47c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanianint test(int val){
57c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	int x = 12;
67c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	// Make sure we don't crash when constant folding the case 4
77c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	// statement due to the case 5 statement contained in the do loop
87c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	switch (val) {
97c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian		case 4: do {
107c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                     switch (6)  {
117c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                       case 6: {
127c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                         case 5: x++;
137c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                       };
147c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                     };
157c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian                } while (x < 100);
167c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	}
177c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian	return x;
187c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian}
197c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian
207c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanianint main(void) {
217c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian  return test(4);
227c9719b1cdb85bb8824439acd5c7c8e511d3e7a0Fariborz Jahanian}
23