[lld] r262835 - lto: Record visibility in defined symbols.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 7 09:14:37 PST 2016
Author: rafael
Date: Mon Mar 7 11:14:36 2016
New Revision: 262835
URL: http://llvm.org/viewvc/llvm-project?rev=262835&view=rev
Log:
lto: Record visibility in defined symbols.
Modified:
lld/trunk/ELF/InputFiles.cpp
lld/trunk/ELF/Symbols.cpp
lld/trunk/ELF/Symbols.h
lld/trunk/test/ELF/lto/Inputs/visibility.s
lld/trunk/test/ELF/lto/visibility.ll
Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=262835&r1=262834&r2=262835&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Mon Mar 7 11:14:36 2016
@@ -457,7 +457,7 @@ void BitcodeFile::parse(DenseSet<StringR
if (Flags & BasicSymbolRef::SF_Undefined)
Body = new (Alloc) Undefined(NameRef, IsWeak, Visibility, false);
else
- Body = new (Alloc) DefinedBitcode(NameRef, IsWeak);
+ Body = new (Alloc) DefinedBitcode(NameRef, IsWeak, Visibility);
SymbolBodies.push_back(Body);
}
}
Modified: lld/trunk/ELF/Symbols.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Symbols.cpp?rev=262835&r1=262834&r2=262835&view=diff
==============================================================================
--- lld/trunk/ELF/Symbols.cpp (original)
+++ lld/trunk/ELF/Symbols.cpp Mon Mar 7 11:14:36 2016
@@ -164,8 +164,8 @@ Defined::Defined(Kind K, StringRef Name,
uint8_t Type)
: SymbolBody(K, Name, IsWeak, Visibility, Type) {}
-DefinedBitcode::DefinedBitcode(StringRef Name, bool IsWeak)
- : Defined(DefinedBitcodeKind, Name, IsWeak, STV_DEFAULT, 0 /* Type */) {}
+DefinedBitcode::DefinedBitcode(StringRef Name, bool IsWeak, uint8_t Visibility)
+ : Defined(DefinedBitcodeKind, Name, IsWeak, Visibility, 0 /* Type */) {}
bool DefinedBitcode::classof(const SymbolBody *S) {
return S->kind() == DefinedBitcodeKind;
Modified: lld/trunk/ELF/Symbols.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Symbols.h?rev=262835&r1=262834&r2=262835&view=diff
==============================================================================
--- lld/trunk/ELF/Symbols.h (original)
+++ lld/trunk/ELF/Symbols.h Mon Mar 7 11:14:36 2016
@@ -188,7 +188,7 @@ public:
class DefinedBitcode : public Defined {
public:
- DefinedBitcode(StringRef Name, bool IsWeak);
+ DefinedBitcode(StringRef Name, bool IsWeak, uint8_t Visibility);
static bool classof(const SymbolBody *S);
};
Modified: lld/trunk/test/ELF/lto/Inputs/visibility.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/Inputs/visibility.s?rev=262835&r1=262834&r2=262835&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/Inputs/visibility.s (original)
+++ lld/trunk/test/ELF/lto/Inputs/visibility.s Mon Mar 7 11:14:36 2016
@@ -1,3 +1,8 @@
.global g
g:
ret
+
+ .data
+ .global a
+a:
+ .long 41
Modified: lld/trunk/test/ELF/lto/visibility.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/visibility.ll?rev=262835&r1=262834&r2=262835&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/visibility.ll (original)
+++ lld/trunk/test/ELF/lto/visibility.ll Mon Mar 7 11:14:36 2016
@@ -12,6 +12,14 @@
; CHECK-NEXT: Other: 2
; CHECK-NEXT: Section: .text
+; CHECK: Name: a
+; CHECK-NEXT: Value: 0x3000
+; CHECK-NEXT: Size: 0
+; CHECK-NEXT: Binding: Local
+; CHECK-NEXT: Type: None
+; CHECK-NEXT: Other: 2
+; CHECK-NEXT: Section: .data
+
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@@ -20,3 +28,4 @@ define void @f() {
call void @g()
ret void
}
+ at a = weak hidden global i32 42
More information about the llvm-commits
mailing list