The verifier rejects comdats on declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241483
91177308-0d34-0410-b5e6-
96231b3b80d8
+ if (Delete) {
+ // Make this a declaration and drop it's comdat.
I->setInitializer(nullptr);
I->setInitializer(nullptr);
+ I->setComdat(nullptr);
+ }
}
// Visit the Functions.
}
// Visit the Functions.
+ if (Delete) {
+ // Make this a declaration and drop it's comdat.
+ I->setComdat(nullptr);
+ }
; llvm-extract uses lazy bitcode loading, so make sure it correctly reads
; from bitcode files in addition to assembly files.
; llvm-extract uses lazy bitcode loading, so make sure it correctly reads
; from bitcode files in addition to assembly files.
-; CHECK: define hidden void @foo() {
+; CHECK: define hidden void @foo() comdat($x) {
; CHECK: ret void
; CHECK: }
; The private linkage for foo() should be changed to external linkage and
; hidden visibility added.
; DELETE: declare hidden void @foo()
; CHECK: ret void
; CHECK: }
; The private linkage for foo() should be changed to external linkage and
; hidden visibility added.
; DELETE: declare hidden void @foo()
; DELETE: define void @bar() {
; DELETE: call void @foo()
; DELETE: ret void
; DELETE: }
; DELETE: define void @bar() {
; DELETE: call void @foo()
; DELETE: ret void
; DELETE: }
-define private void @foo() {
+$x = comdat any
+
+define private void @foo() comdat($x) {
ret void
}
define void @bar() {
ret void
}
define void @bar() {