1// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -std=c++1z -fobjc-arc -fobjc-exceptions -fcxx-exceptions -fexceptions -emit-llvm -o - %s | FileCheck %s
2
3// CHECK: %[[V0:.*]] = type opaque
4// CHECK: %[[STRUCT_CLASS1:.*]] = type { %[[V0]]* }
5
6@interface Class0;
7@end
8
9struct Class1 {
10  Class0 *f;
11};
12
13struct Container {
14  Class1 a;
15  bool b;
16};
17
18bool getBool() {
19  extern void mayThrow();
20  mayThrow();
21  return false;
22}
23
24Class0 *g;
25
26// CHECK: define {{.*}} @_Z4testv()
27// CHECK: invoke zeroext i1 @_Z7getBoolv()
28// CHECK: landingpad { i8*, i32 }
29// CHECK: call void @_ZN6Class1D1Ev(%[[STRUCT_CLASS1]]* {{[^,]*}} %{{.*}})
30// CHECK: br label
31
32// CHECK: define linkonce_odr void @_ZN6Class1D1Ev(
33
34Container test() {
35  return {{g}, getBool()};
36}
37