1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib/MC
Chandler Carruth e6f558ca83 [ptr-traits] Provide a real MCFragment address for the sentinel instead
of casting the integer '4' to such a pointer. There is no reason to
expect '4' to be a portable or reliable pointer of this form. The only
reason this ever worked is because the PointerIntPair that this actually
gets used with has an artificially *low* presumed alignment that allowed
it to work. When the alignment of PointerIntPair is derived from the
actual type's alignment, the asserts start firing on this pointer. I'm
amazed we never managed to do anything that triggered the alignment
sanitizer with it, as this is just flat out UB.

If folks dislike this approach to providing a sentinel fragment address,
there are a myriad of other alternatives, suggestions welcome. But this
one has the distinct advantage of not requiring the friend dance of
ilist's sentinel (which I'll point out is *also* in play for
MCFragment!) and seems to be using a nicely provided facility in
MCFragment to establish just such dummy nodes.

This is part of a series of patches to allow LLVM to check for complete
pointee types when computing its pointer traits. This is absolutely
necessary to get correct (or reproducible) results for things like how
many low bits are guaranteed to be zero.

llvm-svn: 256552
2015-12-29 09:32:18 +00:00
..
MCDisassembler Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MCParser Use std::unique_ptr. NFC. 2015-12-16 23:49:14 +00:00
CMakeLists.txt [ptr-traits] Split the MCFragment type hierarchy out of the MCAssembler 2015-12-29 09:06:16 +00:00
ConstantPools.cpp [ARM,AArch64] Store source location of asm constant pool entries 2015-11-16 16:25:47 +00:00
ELFObjectWriter.cpp Avoid explicit relocation sorting most of the time. 2015-12-17 16:22:06 +00:00
LLVMBuild.txt
MachObjectWriter.cpp ARM: support .watchos_version_min and .tvos_version_min. 2015-10-28 22:36:05 +00:00
Makefile
MCAsmBackend.cpp Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
MCAsmInfo.cpp MCAsmInfo: Allow targets to specify when the .section directive should be omitted 2015-09-25 21:41:14 +00:00
MCAsmInfoCOFF.cpp [MC] Use LShr for constant evaluation of ">>" on non-arm64 darwin. 2015-11-11 00:51:36 +00:00
MCAsmInfoDarwin.cpp [MC] Use LShr for constant evaluation of ">>" on non-arm64 darwin. 2015-11-11 00:51:36 +00:00
MCAsmInfoELF.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAsmStreamer.cpp Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
MCAssembler.cpp [ptr-traits] Split the MCFragment type hierarchy out of the MCAssembler 2015-12-29 09:06:16 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCContext.cpp Use std::unique_ptr. NFC. 2015-12-16 23:49:14 +00:00
MCDwarf.cpp Accept dwarf version 5 for CIE versions. 2015-12-28 23:02:42 +00:00
MCELFObjectTargetWriter.cpp Always sort by offset first. NFC. 2015-12-17 15:08:24 +00:00
MCELFStreamer.cpp Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
MCExpr.cpp Recognize strings for Hexagon-specific variant kinds 2015-12-18 18:47:27 +00:00
MCFragment.cpp [ptr-traits] Split the MCFragment type hierarchy out of the MCAssembler 2015-12-29 09:06:16 +00:00
MCInst.cpp Teach MCOperand::print how to print FPImm operands. 2015-12-21 16:47:10 +00:00
MCInstPrinter.cpp [llvm] Parameterizing the output stream for dumpbytes and outputting directly to stream. 2015-05-28 18:39:50 +00:00
MCInstrAnalysis.cpp
MCInstrDesc.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
MCLabel.cpp
MCLinkerOptimizationHint.cpp MC: Tidy up LOH naming a bit. NFC. 2015-06-01 23:55:06 +00:00
MCMachObjectTargetWriter.cpp MC: Remove obsolete MachO UseAggressiveSymbolFolding. 2015-06-04 20:27:42 +00:00
MCMachOStreamer.cpp MC: Make sure to clear *all* of MCMachOStreamer's state 2015-12-03 00:52:20 +00:00
MCNullStreamer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCObjectFileInfo.cpp [MC] Don't use the architecture to govern which object file format to use 2015-12-22 01:39:04 +00:00
MCObjectStreamer.cpp Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
MCObjectWriter.cpp Fix pr24486. 2015-10-05 12:07:05 +00:00
MCRegisterInfo.cpp
MCSchedule.cpp Add <type_traits> for is_pod, fixing r241947 2015-07-10 22:17:49 +00:00
MCSection.cpp MC: Remove implicit ilist iterator conversions, NFC 2015-10-10 00:13:11 +00:00
MCSectionCOFF.cpp Sink COFF.h MC include into .cpp files 2015-09-03 16:41:50 +00:00
MCSectionELF.cpp Bring r252305 back with a test fix. 2015-11-06 15:30:45 +00:00
MCSectionMachO.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
MCStreamer.cpp Simplify now that emitValueToOffset always returns false. 2015-11-04 23:59:18 +00:00
MCSubtargetInfo.cpp [ARM] Introduce subtarget features per ARM architecture. 2015-11-16 11:10:19 +00:00
MCSymbol.cpp [ptr-traits] Provide a real MCFragment address for the sentinel instead 2015-12-29 09:32:18 +00:00
MCSymbolELF.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCSymbolizer.cpp
MCTargetOptions.cpp [MC, COFF] Support link /incremental conditionally 2015-12-21 22:09:27 +00:00
MCValue.cpp Use operator<< instead of print in a few more places. 2015-05-27 13:05:42 +00:00
MCWin64EH.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCWinEH.cpp Stop producing .data.rel sections. 2015-11-18 06:02:15 +00:00
StringTableBuilder.cpp Rename qsort -> multikey_qsort. NFC. 2015-10-27 16:57:50 +00:00
SubtargetFeature.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
WinCOFFObjectWriter.cpp [MC, COFF] Support link /incremental conditionally 2015-12-21 22:09:27 +00:00
WinCOFFStreamer.cpp [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
YAML.cpp