1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

[llvm-extract] Drop comdats from declarations

The verifier rejects comdats on declarations.

llvm-svn: 241483
This commit is contained in:
Reid Kleckner 2015-07-06 18:48:02 +00:00
parent 384e9f4564
commit 9e47912607
2 changed files with 13 additions and 4 deletions

View File

@ -93,8 +93,11 @@ namespace {
makeVisible(*I, Delete);
if (Delete)
if (Delete) {
// Make this a declaration and drop it's comdat.
I->setInitializer(nullptr);
I->setComdat(nullptr);
}
}
// Visit the Functions.
@ -108,8 +111,11 @@ namespace {
makeVisible(*I, Delete);
if (Delete)
if (Delete) {
// Make this a declaration and drop it's comdat.
I->deleteBody();
I->setComdat(nullptr);
}
}
// Visit the Aliases.

View File

@ -7,19 +7,22 @@
; 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()
; DELETE-NOT: comdat
; 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() {