//@ compile-flags: -g -C no-prepopulate-passes #![crate_type = "lib"] #[derive(Clone, Copy)] pub enum EmptyEnum {} #[no_mangle] pub fn empty(x: &EmptyEnum) -> EmptyEnum { // CHECK: @empty({{.*}}) unnamed_addr #0 // CHECK-NOT: ret void // CHECK: call void @llvm.trap() // CHECK: unreachable *x } pub struct Foo(String, EmptyEnum); #[no_mangle] pub fn foo(x: String, y: &EmptyEnum) -> Foo { // CHECK: @foo({{.*}}) unnamed_addr #0 // CHECK-NOT: ret %Foo // CHECK: call void @llvm.trap() // CHECK: unreachable Foo(x, *y) } // CHECK: attributes #0 = {{{.*}} noreturn {{.*}}} // CHECK: DISubprogram(name: "empty", {{.*}} DIFlagNoReturn // CHECK: DISubprogram(name: "foo", {{.*}} DIFlagNoReturn