llvm-project/llvm/lib/CodeGen/AsmPrinter
Eli Friedman 0b61d220c9 [AArch64][Windows] Compute function length correctly in unwind tables.
The primary fix here is to WinException.cpp: we need to exclude jump
tables when computing the length of a function, or else we fail to
correctly compute the length. (We can only compute the number of bytes
consumed by certain assembler directives after the entire file is
parsed. ".p2align" is one of those directives, and is used by jump table
generation.)

The secondary fix, to MCWin64EH, is to make sure we don't silently
miscompile if we hit a similar situation in the future.

It's possible we could extend ARM64EmitUnwindInfo so it allows function
bodies that contain assembler directives, but that's a lot more
complicated; see the FIXME in MCWin64EH.cpp.

Fixes https://bugs.llvm.org/show_bug.cgi?id=41581 .

Differential Revision: https://reviews.llvm.org/D61095

llvm-svn: 359849
2019-05-03 00:10:45 +00:00
..
ARMException.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AccelTable.cpp Reapply: "DebugInfo: Emit only one kind of accelerated access/name table"" 2019-04-23 19:00:45 +00:00
AddressPool.cpp DebugInfo: Use assembly label arithmetic for address pool size for easier reading/editing 2019-01-24 03:27:57 +00:00
AddressPool.h DebugInfo: Use assembly label arithmetic for address pool size for easier reading/editing 2019-01-24 03:27:57 +00:00
AsmPrinter.cpp [AsmPrinter] Make AsmPrinter::HandlerInfo::Handler a unique_ptr 2019-04-30 09:14:02 +00:00
AsmPrinterDwarf.cpp Add explicit dependencies on MCSection.h and MCDwarf.h to the .cpp 2019-04-12 07:40:01 +00:00
AsmPrinterInlineAsm.cpp [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00
ByteStreamer.h [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
CMakeLists.txt Revert "[BTF] Add BTF DebugInfo" 2018-11-30 16:54:43 +00:00
CodeViewDebug.cpp Recommitting r358783 and r358786 "[MS] Emit S_HEAPALLOCSITE debug info" with fixes for buildbot error (undefined assembler label). 2019-04-24 23:02:48 +00:00
CodeViewDebug.h Recommitting r358783 and r358786 "[MS] Emit S_HEAPALLOCSITE debug info" with fixes for buildbot error (undefined assembler label). 2019-04-24 23:02:48 +00:00
DIE.cpp [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
DIEHash.cpp [DebugInfo] Introduce DW_OP_LLVM_convert 2019-03-19 13:16:28 +00:00
DIEHash.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DIEHashAttributes.def Fix DIEHash refactoring that dropped the DW_AT_name from the hash 2017-05-23 18:36:07 +00:00
DbgEntityHistoryCalculator.cpp [DebugInfo] Terminate more location-list ranges at the end of blocks 2019-04-29 09:13:16 +00:00
DebugHandlerBase.cpp [DebugInfo] Improve handling of clobbered fragments 2019-04-10 11:28:20 +00:00
DebugLocEntry.h [DebugInfo] Pass all values in DebugLocEntry's constructor, NFC 2019-04-09 10:08:26 +00:00
DebugLocStream.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DebugLocStream.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DwarfCFIException.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DwarfCompileUnit.cpp DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units 2019-04-24 18:09:44 +00:00
DwarfCompileUnit.h DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units 2019-04-24 18:09:44 +00:00
DwarfDebug.cpp [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. 2019-04-30 07:58:57 +00:00
DwarfDebug.h DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units 2019-04-24 18:09:44 +00:00
DwarfException.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DwarfExpression.cpp [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. 2019-04-30 07:58:57 +00:00
DwarfExpression.h [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. 2019-04-30 07:58:57 +00:00
DwarfFile.cpp DebugInfo: Split DWARF + gmlt + no-split-dwarf-inlining shouldn't emit anything to the .dwo file 2019-02-12 00:00:38 +00:00
DwarfFile.h [AsmPrinter] Delete unused RangeSpanList::addRange 2019-04-10 10:35:10 +00:00
DwarfStringPool.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DwarfStringPool.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DwarfUnit.cpp [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. 2019-04-30 07:58:57 +00:00
DwarfUnit.h DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units 2019-04-24 18:09:44 +00:00
EHStreamer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
EHStreamer.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ErlangGCPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
OcamlGCPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WasmException.cpp [WebAssembly] Exception handling: Switch to the new proposal 2019-01-30 03:21:57 +00:00
WasmException.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WinCFGuard.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WinCFGuard.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
WinException.cpp [AArch64][Windows] Compute function length correctly in unwind tables. 2019-05-03 00:10:45 +00:00
WinException.h [AArch64][Windows] Compute function length correctly in unwind tables. 2019-05-03 00:10:45 +00:00