[PATCH] D25085: [ELF] - Do not crash if common symbol has alignment 0.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 04:26:02 PDT 2016
grimar updated this revision to Diff 73259.
grimar added a comment.
- Addressed review comments.
https://reviews.llvm.org/D25085
Files:
ELF/InputFiles.cpp
test/ELF/invalid/Inputs/common-symbol-alignment.elf
test/ELF/invalid/common-symbol-alignment.s
Index: test/ELF/invalid/common-symbol-alignment.s
===================================================================
--- test/ELF/invalid/common-symbol-alignment.s
+++ test/ELF/invalid/common-symbol-alignment.s
@@ -0,0 +1,6 @@
+# REQUIRES: x86
+
+## common-symbol-alignment.elf contains common symbol with zero alignment.
+# RUN: not ld.lld %S/Inputs/common-symbol-alignment.elf \
+# RUN: -o %t 2>&1 | FileCheck %s
+# CHECK: common symbol 'bar' alignment is 0
Index: ELF/InputFiles.cpp
===================================================================
--- ELF/InputFiles.cpp
+++ ELF/InputFiles.cpp
@@ -400,6 +400,9 @@
/*CanOmitFromDynSym*/ false, this)
->body();
case SHN_COMMON:
+ if (Sym->st_value == 0)
+ fatal(getFilename(this) + ": common symbol '" + Name +
+ "' alignment is 0");
return elf::Symtab<ELFT>::X->addCommon(Name, Sym->st_size, Sym->st_value,
Binding, Sym->st_other,
Sym->getType(), this)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25085.73259.patch
Type: text/x-patch
Size: 1097 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161003/3b26d3df/attachment.bin>
More information about the llvm-commits
mailing list