[PATCH] D25085: [ELF] - Do not crash if common symbol has alignment 0.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 4 01:58:54 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL283197: [ELF] - Do not crash if common symbol has alignment 0. (authored by grimar).

Changed prior to commit:
  https://reviews.llvm.org/D25085?vs=73259&id=73428#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D25085

Files:
  lld/trunk/ELF/InputFiles.cpp
  lld/trunk/test/ELF/invalid/Inputs/common-symbol-alignment.elf
  lld/trunk/test/ELF/invalid/common-symbol-alignment.s


Index: lld/trunk/test/ELF/invalid/common-symbol-alignment.s
===================================================================
--- lld/trunk/test/ELF/invalid/common-symbol-alignment.s
+++ lld/trunk/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: lld/trunk/ELF/InputFiles.cpp
===================================================================
--- lld/trunk/ELF/InputFiles.cpp
+++ lld/trunk/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.73428.patch
Type: text/x-patch
Size: 1142 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161004/d3c8daf9/attachment.bin>


More information about the llvm-commits mailing list