diff --git a/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll b/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll new file mode 100644 index 0000000000000..f1f7712f54039 --- /dev/null +++ b/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll @@ -0,0 +1,32 @@ +; RUN: opt --mtriple x86_64-unknown-linux-gnu < %s -passes="embed-bitcode" -S | FileCheck %s + +; CHECK-NOT: $_ZTV3Foo = comdat any +$_ZTV3Foo = comdat any + +$_ZTI3Foo = comdat any + +; CHECK: @_ZTV3Foo = external hidden unnamed_addr constant { [5 x ptr] }, align 8 +; CHECK: @_ZTI3Foo = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS3Foo, ptr @_ZTISt13runtime_error }, comdat, align 8 +; CHECK: @llvm.embedded.object = private constant {{.*}}, section ".llvm.lto", align 1 +; CHECK: @llvm.compiler.used = appending global [1 x ptr] [ptr @llvm.embedded.object], section "llvm.metadata" +@_ZTV3Foo = linkonce_odr hidden unnamed_addr constant { [5 x ptr] } { [5 x ptr] [ptr null, ptr @_ZTI3Foo, ptr @_ZN3FooD2Ev, ptr @_ZN3FooD0Ev, ptr @_ZNKSt13runtime_error4whatEv] }, comdat, align 8, !type !0, !type !1, !type !2, !type !3, !type !4, !type !5 +@_ZTI3Foo = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS3Foo, ptr @_ZTISt13runtime_error }, comdat, align 8 +@_ZTVN10__cxxabiv120__si_class_type_infoE = external global [0 x ptr] +@_ZTS3Foo = constant [5 x i8] c"3Foo\00" +@_ZTISt13runtime_error = external constant ptr + +declare void @_ZN3FooD2Ev() + +declare void @_ZN3FooD0Ev() + +declare ptr @_ZNKSt13runtime_error4whatEv() + +!llvm.module.flags = !{!6} + +!0 = !{i64 16, !"_ZTS3Foo"} +!1 = !{i64 32, !"_ZTSM3FooKDoFPKcvE.virtual"} +!2 = !{i64 16, !"_ZTSSt13runtime_error"} +!3 = !{i64 32, !"_ZTSMSt13runtime_errorKDoFPKcvE.virtual"} +!4 = !{i64 16, !"_ZTSSt9exception"} +!5 = !{i64 32, !"_ZTSMSt9exceptionKDoFPKcvE.virtual"} +!6 = !{i32 1, !"EnableSplitLTOUnit", i32 1}