From 35b0657dea3f5dfee3b753a58c585edd22e3b45c Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 22 Mar 2010 23:16:43 +0000 Subject: [PATCH] Add a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99228 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MachObjectWriter.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 633197a67fd..e6232acbf0d 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -437,6 +437,20 @@ public: Write32(Address); } + // FIXME: We really need to improve the relocation validation. Basically, we + // want to implement a separate computation which evaluates the relocation + // entry as the linker would, and verifies that the resultant fixup value is + // exactly what the encoder wanted. This will catch several classes of + // problems: + // + // - Relocation entry bugs, the two algorithms are unlikely to have the same + // exact bug. + // + // - Relaxation issues, where we forget to relax something. + // + // - Input errors, where something cannot be correctly encoded. 'as' allows + // these through in many cases. + void RecordX86_64Relocation(const MCAssembler &Asm, const MCFragment *Fragment, const MCAsmFixup &Fixup, MCValue Target,