diff options
Diffstat (limited to 'llvm/test/Transforms/Inline/label-annotation.ll')
| -rw-r--r-- | llvm/test/Transforms/Inline/label-annotation.ll | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/llvm/test/Transforms/Inline/label-annotation.ll b/llvm/test/Transforms/Inline/label-annotation.ll new file mode 100644 index 00000000000..9d471f63620 --- /dev/null +++ b/llvm/test/Transforms/Inline/label-annotation.ll @@ -0,0 +1,35 @@ +; Inlining should not clone label annotations. +; Currently we block all duplication for simplicity. + +; RUN: opt < %s -S -inline | FileCheck %s + +@the_global = global i32 0 + +declare void @llvm.codeview.annotation(metadata) + +define void @inlinee() { +entry: + store i32 42, i32* @the_global + call void @llvm.codeview.annotation(metadata !0) + ret void +} + +define void @caller() { +entry: + call void @inlinee() + ret void +} + +!0 = !{!"annotation"} + +; CHECK-LABEL: define void @inlinee() +; CHECK: store i32 42, i32* @the_global +; CHECK: call void @llvm.codeview.annotation(metadata !0) +; CHECK: ret void + +; CHECK-LABEL: define void @caller() +; MSVC can inline this. If we ever do, check for the store but make sure +; there is no annotation. +; CHECK: call void @inlinee() +; CHECK-NOT: call void @llvm.codeview.annotation +; CHECK: ret void |

