diff options
author | Adrian Prantl <aprantl@apple.com> | 2020-01-14 13:37:04 -0800 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2020-01-17 12:55:40 -0800 |
commit | 7b30370e5bcf569fcdc15204d4c592163fd78cb3 (patch) | |
tree | 168710fa72ed2995b0069eda59a95465125efc88 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | c17aee67f1007426fb12f4081183bb8ec5dc3d15 (diff) | |
download | llvm-7b30370e5bcf569fcdc15204d4c592163fd78cb3.zip llvm-7b30370e5bcf569fcdc15204d4c592163fd78cb3.tar.gz llvm-7b30370e5bcf569fcdc15204d4c592163fd78cb3.tar.bz2 |
Move the sysroot attribute from DIModule to DICompileUnit
[this re-applies c0176916a4824812d25a5a22c4ff7c95857b0cd6
with the correct commit message and phabricator link]
This addresses point 1 of PR44213.
https://bugs.llvm.org/show_bug.cgi?id=44213
The DW_AT_LLVM_sysroot attribute is used for Clang module debug info,
to allow LLDB to import a Clang module from source. Currently it is
part of each DW_TAG_module, however, it is the same for all modules in
a compile unit. It is more efficient and less ambiguous to store it
once in the DW_TAG_compile_unit.
This should have no effect on DWARF consumers other than LLDB.
Differential Revision: https://reviews.llvm.org/D71732
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index ef92bc2..956bbcd 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -1662,6 +1662,8 @@ void ModuleBitcodeWriter::writeDICompileUnit(const DICompileUnit *N, Record.push_back(N->getSplitDebugInlining()); Record.push_back(N->getDebugInfoForProfiling()); Record.push_back((unsigned)N->getNameTableKind()); + Record.push_back(N->getRangesBaseAddress()); + Record.push_back(VE.getMetadataOrNullID(N->getRawSysRoot())); Stream.EmitRecord(bitc::METADATA_COMPILE_UNIT, Record, Abbrev); Record.clear(); |