[PATCH] D49644: [COFF] Hoist constant pool handling from X86AsmPrinter into AsmPrinter

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 21 22:06:44 PDT 2018


mstorsjo created this revision.
mstorsjo added reviewers: rnk, mgrang, ssijaric, efriedma, compnerd, smeenai.
Herald added a reviewer: javed.absar.
Herald added a subscriber: chrib.

In SVN r334523, the first half of comdat constant pool handling was hoisted from X86WindowsTargetObjectFile (which despite the name only was used for msvc targets) into the arch independent TargetLoweringObjectFileCOFF, but the other half of the handling was left behind in X86AsmPrinter::GetCPISymbol.

With only half of the handling in place, inconsistent comdat sections/symbols are created, causing issues with both GNU binutils (avoided for X86 in SVN r335918) and with the MS linker, which would complain like this:

fatal error LNK1143: invalid or corrupt file: no symbol for COMDAT section 0x4


Repository:
  rL LLVM

https://reviews.llvm.org/D49644

Files:
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/Target/AArch64/AArch64AsmPrinter.cpp
  lib/Target/X86/X86AsmPrinter.cpp
  lib/Target/X86/X86AsmPrinter.h
  test/CodeGen/AArch64/win_cst_pool.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49644.156700.patch
Type: text/x-patch
Size: 5034 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180722/11667b0b/attachment.bin>


More information about the llvm-commits mailing list