1// RUN: %clang_cc1 -emit-llvm -fblocks -triple x86_64-apple-darwin -fstrict-return -o - %s | FileCheck %s 2// RUN: %clang_cc1 -emit-llvm -fblocks -triple x86_64-apple-darwin -fstrict-return -O -o - %s | FileCheck %s 3 4@interface I 5@end 6 7@implementation I 8 9- (int)method { 10} 11 12@end 13 14enum Enum { 15 a 16}; 17 18int (^block)(Enum) = ^int(Enum e) { 19 switch (e) { 20 case a: 21 return 1; 22 } 23}; 24 25// Ensure that both methods and blocks don't use the -fstrict-return undefined 26// behaviour optimization. 27 28// CHECK-NOT: call void @llvm.trap 29// CHECK-NOT: unreachable 30