Details
Diff Detail
Unit Tests
Event Timeline
llvm/test/MC/ELF/gen-dwarf64.s | ||
---|---|---|
25–26 | Test that the length and CU offset were parsed correctly - since this patch changes how those are emitted. |
This patch modifies EmitGenDwarfAranges(), which is used only when the assembler is generating DWARF to describe the assembler source.
I can't imagine anyone is really writing large enough assembler that they need to emit DWARF-64 format. What is the motivation here?
Might be best to keep the fundamental design direction/question here in one thread ( https://reviews.llvm.org/D81144 ) rather than in all of them. Patches are in a series, so if that one ends up going another direction I don't think there's a risk these later ones will be reviewed/approved/committed in spite of that fundamental question.
So if we want DWARF-64 .debug_aranges for both asm source and higher-level language source....
This patch only does the asm source path, not the main path. I am not 100% clear where the other path is, but I see code to emit .debug_aranges in lib/DWARFLinker/DWARFStreamer.cpp, is that where the normal path is now?
Yep, adding support for higher level source/LLVM IR will be a separate patch/independent change. It'll be in llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp - llvm::DwarfDebug::emitDebugARanges
llvm/lib/MC/MCDwarf.cpp | ||
---|---|---|
913–916 | As mentioned elsewhere, there are two code paths here, but only one seems to be tested. Do we need another test case? |
- Extended a test for Mach-O so that all changed code paths are covered.
- Added more checks for the .debug_aranges section to validate that it is not skewed.
llvm/lib/MC/MCDwarf.cpp | ||
---|---|---|
913–916 | MachO/gen-dwarf64.s is extended to cover another code path. |
- Added --implicit-check-not="R_{{.*}} .debug_" to the test to ensure that all relocations to debug sections are checked.
As mentioned elsewhere, there are two code paths here, but only one seems to be tested. Do we need another test case?