diff options
-rw-r--r-- | lld/ELF/Writer.cpp | 1 | ||||
-rw-r--r-- | lld/test/elf2/symbols.s | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 3b01631d123..bde48972b01 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -260,6 +260,7 @@ template <class ELFT> void SymbolTableSection<ELFT>::writeTo(uint8_t *Buf) { uint8_t Type = InputSym->getType(); uint8_t Binding = InputSym->getBinding(); ESym->setBindingAndType(Binding, Type); + ESym->st_size = InputSym->st_size; } if (Section) { diff --git a/lld/test/elf2/symbols.s b/lld/test/elf2/symbols.s index e2b29962634..be0661d7413 100644 --- a/lld/test/elf2/symbols.s +++ b/lld/test/elf2/symbols.s @@ -25,6 +25,7 @@ zed2: .section foobar,"a",@nobits,unique,2 .globl zed3 +.size zed3, 4 zed3: // CHECK: Name: .text @@ -64,7 +65,7 @@ zed3: // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: zed3 // CHECK-NEXT: Value: 0x100C -// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Size: 4 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None // CHECK-NEXT: Other: 0 |