brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 3fd1b09 Raw
44 lines · plain
1; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s2 3; CHECK: define void @foo(ptr sret(i32) align 4 %0)4define void @foo(ptr sret(i32) align 4 %0) {5  ret void6}7 8; CHECK: define void @bar(ptr sret({ ptr, i8 }) align 4 %0)9define void @bar(ptr sret({ptr, i8}) align 4 %0) {10  ret void11}12 13define void @caller(ptr %ptr) personality ptr @__gxx_personality_v0 {14; CHECK: call void @bar(ptr sret({ ptr, i8 }) %ptr)15; CHECK: invoke void @bar(ptr sret({ ptr, i8 }) %ptr)16  call void @bar(ptr sret({ptr, i8}) %ptr)17  invoke void @bar(ptr sret({ptr, i8}) %ptr) to label %success unwind label %fail18 19success:20  ret void21 22fail:23  landingpad { ptr, i32 } cleanup24  ret void25}26 27; CHECK: declare void @baz(ptr sret([8 x i8]))28%named_type = type [8 x i8]29declare void @baz(ptr sret(%named_type))30 31declare i32 @__gxx_personality_v0(...)32 33%0 = type opaque34 35; CHECK: define void @anon(ptr sret({ ptr }) %arg)36; CHECK:   call void @anon_callee(ptr sret({ ptr }) %arg)37define void @anon(ptr sret({ ptr }) %arg) {38  call void @anon_callee(ptr sret({ ptr }) %arg)39  ret void40}41 42; CHECK: declare void @anon_callee(ptr sret({ ptr }))43declare void @anon_callee(ptr sret({ ptr }))44