// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-macosx10.13.0 -std=c++1z -fobjc-arc -fobjc-exceptions -fcxx-exceptions -fexceptions -emit-llvm -o - %s | FileCheck %s

// CHECK: %[[V0:.*]] = type opaque
// CHECK: %[[STRUCT_CLASS1:.*]] = type { %[[V0]]* }

@interface Class0;
@end

struct Class1 {
  Class0 *f;
};

struct Container {
  Class1 a;
  bool b;
};

bool getBool() {
  extern void mayThrow();
  mayThrow();
  return false;
}

Class0 *g;

// CHECK: define {{.*}} @_Z4testv()
// CHECK: invoke noundef zeroext i1 @_Z7getBoolv()
// CHECK: landingpad { i8*, i32 }
// CHECK: call void @_ZN6Class1D1Ev(%[[STRUCT_CLASS1]]* {{[^,]*}} %{{.*}})
// CHECK: br label

// CHECK: define linkonce_odr void @_ZN6Class1D1Ev(

Container test() {
  return {{g}, getBool()};
}
