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