1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o - 2*67e74705SXin Li 3*67e74705SXin Li 4*67e74705SXin Li void doesntThrow() throw(); 5*67e74705SXin Li struct F { ~FF6*67e74705SXin Li ~F() { doesntThrow(); } 7*67e74705SXin Li }; 8*67e74705SXin Li atest()9*67e74705SXin Livoid atest() { 10*67e74705SXin Li F A; 11*67e74705SXin Li lab: 12*67e74705SXin Li F B; 13*67e74705SXin Li goto lab; 14*67e74705SXin Li } 15*67e74705SXin Li test(int val)16*67e74705SXin Livoid test(int val) { 17*67e74705SXin Li label: { 18*67e74705SXin Li F A; 19*67e74705SXin Li F B; 20*67e74705SXin Li if (val == 0) goto label; 21*67e74705SXin Li if (val == 1) goto label; 22*67e74705SXin Li } 23*67e74705SXin Li } 24*67e74705SXin Li test3(int val)25*67e74705SXin Livoid test3(int val) { 26*67e74705SXin Li label: { 27*67e74705SXin Li F A; 28*67e74705SXin Li F B; 29*67e74705SXin Li if (val == 0) { doesntThrow(); goto label; } 30*67e74705SXin Li if (val == 1) { doesntThrow(); goto label; } 31*67e74705SXin Li } 32*67e74705SXin Li } 33*67e74705SXin Li test4(int val)34*67e74705SXin Livoid test4(int val) { 35*67e74705SXin Li label: { 36*67e74705SXin Li F A; 37*67e74705SXin Li F B; 38*67e74705SXin Li if (val == 0) { F C; goto label; } 39*67e74705SXin Li if (val == 1) { F D; goto label; } 40*67e74705SXin Li } 41*67e74705SXin Li } 42