1 // RUN: %clang_cc1 -O1 -disable-llvm-optzns -emit-llvm -o - %s | FileCheck %s 2 3 #define M if (x) goto L1; 4 #define M10 M M M M M M M M M M 5 #define M100 M10 M10 M10 M10 M10 M10 M10 M10 M10 M10 6 #define M1000 M100 M100 M100 M100 M100 M100 M100 M100 M100 M100 7 f(int x)8void f(int x) { 9 int h; 10 11 // Many gotos to not-yet-emitted labels would cause EHScope's FixupDepth 12 // to overflow (PR23490). 13 M1000 M1000 M1000 14 15 if (x == 5) { 16 // This will cause us to emit a clean-up of the stack variable. If the 17 // FixupDepths are broken, fixups will erroneously get threaded through it. 18 int i; 19 } 20 21 L1: 22 return; 23 } 24 25 // CHECK-LABEL: define void @f 26 // CHECK-NOT: cleanup 27