[PATCH] COFF: Skip internal symbols in bitcode files.
Peter Collingbourne
peter at pcc.me.uk
Mon Jun 8 13:13:46 PDT 2015
Hi ruiu,
http://reviews.llvm.org/D10319
Files:
COFF/InputFiles.cpp
test/COFF/Inputs/lto-dep.ll
test/COFF/lto.ll
Index: COFF/InputFiles.cpp
===================================================================
--- COFF/InputFiles.cpp
+++ COFF/InputFiles.cpp
@@ -257,9 +257,13 @@
}
for (unsigned I = 0, E = M->getSymbolCount(); I != E; ++I) {
+ lto_symbol_attributes Attrs = M->getSymbolAttributes(I);
+ if ((Attrs & LTO_SYMBOL_SCOPE_MASK) == LTO_SYMBOL_SCOPE_INTERNAL)
+ continue;
+
StringRef SymName = M->getSymbolName(I);
- if ((M->getSymbolAttributes(I) & LTO_SYMBOL_DEFINITION_MASK) ==
- LTO_SYMBOL_DEFINITION_UNDEFINED) {
+ int SymbolDef = Attrs & LTO_SYMBOL_DEFINITION_MASK;
+ if (SymbolDef == LTO_SYMBOL_DEFINITION_UNDEFINED) {
SymbolBodies.push_back(new (Alloc) Undefined(SymName));
} else {
SymbolBodies.push_back(new (Alloc) DefinedBitcode(SymName));
Index: test/COFF/Inputs/lto-dep.ll
===================================================================
--- test/COFF/Inputs/lto-dep.ll
+++ test/COFF/Inputs/lto-dep.ll
@@ -4,3 +4,7 @@
define void @foo() {
ret void
}
+
+define internal void @internal() {
+ ret void
+}
Index: test/COFF/lto.ll
===================================================================
--- test/COFF/lto.ll
+++ test/COFF/lto.ll
@@ -54,16 +54,34 @@
; TEXT-01: Disassembly of section .text:
; TEXT-01-NEXT: .text:
; TEXT-01-NEXT: subq $40, %rsp
-; TEXT-01-NEXT: callq 7
+; TEXT-01-NEXT: callq 23
; TEXT-01-NEXT: xorl %eax, %eax
; TEXT-01-NEXT: addq $40, %rsp
; TEXT-01-NEXT: retq
; TEXT-01-NEXT: retq
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: int3
+; TEXT-01-NEXT: retq
-; HEADERS-10: AddressOfEntryPoint: 0x2010
+; HEADERS-10: AddressOfEntryPoint: 0x2020
; TEXT-10: Disassembly of section .text:
; TEXT-10-NEXT: .text:
; TEXT-10-NEXT: retq
+; TEXT-10-NEXT: nopw %cs:(%rax,%rax)
+; TEXT-10-NEXT: retq
; TEXT-10-NEXT: int3
; TEXT-10-NEXT: int3
; TEXT-10-NEXT: int3
@@ -80,7 +98,7 @@
; TEXT-10-NEXT: int3
; TEXT-10-NEXT: int3
; TEXT-10-NEXT: subq $40, %rsp
-; TEXT-10-NEXT: callq -25
+; TEXT-10-NEXT: callq -41
; TEXT-10-NEXT: xorl %eax, %eax
; TEXT-10-NEXT: addq $40, %rsp
; TEXT-10-NEXT: retq
@@ -104,3 +122,7 @@
define i32 @f2() comdat($f2) {
ret i32 2
}
+
+define internal void @internal() {
+ ret void
+}
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D10319.27326.patch
Type: text/x-patch
Size: 2503 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150608/431f6c0b/attachment.bin>
More information about the llvm-commits
mailing list