// RUN: %target-swift-frontend -module-name A -emit-ir -primary-file %s -import-objc-header %S/Inputs/noreturn.h | %FileCheck %s


// CHECK-LABEL: define {{.*}} void @"$s1A018testDirectReturnNoC0yyF"()
// CHECK:   call i32 @scalarNoReturn()
// CHECK:   unreachable
public func testDirectReturnNoReturn() {
  scalarNoReturn()
}

// CHECK-LABEL: define {{.*}} void @"$s1A019testDirect2ReturnNoC0yyF"()
// CHECK:   call {{.*}}@smallStructNoReturn({{.*}})
// CHECK:   unreachable
public func testDirect2ReturnNoReturn() {
  smallStructNoReturn()
}

// CHECK-LABEL: define {{.*}} void @"$s1A020testIndirectReturnNoC0yyF"()
// CHECK:   [[INDIRECT_RESULT:%.*]] = alloca %struct.Large
// CHECK:   call void @largeStructNoReturn(%struct.Large* {{.*}}[[INDIRECT_RESULT]])
// CHECK:   unreachable
public func testIndirectReturnNoReturn() {
  largeStructNoReturn()
}

// CHECK-LABEL: define {{.*}} void @"$s1A016testVoidReturnNoC0yyF"()
// CHECK:   call void @voidNoReturn()
// CHECK:   unreachable
public func testVoidReturnNoReturn() {
  voidNoReturn()
}
