diff options
| author | Michael Buch <michaelbuch12@gmail.com> | 2025-10-15 16:52:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-15 16:52:45 +0100 |
| commit | cf1cdde24e76a4ff5bbda2128800ba3ca4132b6d (patch) | |
| tree | 2d0f603266f34f7cc0612f92336b3fb4fbfd4dbf /llvm/lib/Bitcode/Reader/MetadataLoader.cpp | |
| parent | a1b0db82cf5fdf0a2981877c9a939a8097393049 (diff) | |
| download | llvm-cf1cdde24e76a4ff5bbda2128800ba3ca4132b6d.zip llvm-cf1cdde24e76a4ff5bbda2128800ba3ca4132b6d.tar.gz llvm-cf1cdde24e76a4ff5bbda2128800ba3ca4132b6d.tar.bz2 | |
[llvm][DebugInfo] Add 'sourceLanguageVersion' field support to DICompileUnit (#162632)
Depends on:
* https://github.com/llvm/llvm-project/pull/162445
In preparation to emit DWARFv6's `DW_AT_language_version`.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/MetadataLoader.cpp')
| -rw-r--r-- | llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index cdcf7a8..ed0443f 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -1860,7 +1860,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata( break; } case bitc::METADATA_COMPILE_UNIT: { - if (Record.size() < 14 || Record.size() > 22) + if (Record.size() < 14 || Record.size() > 23) return error("Invalid record"); // Ignore Record[0], which indicates whether this compile unit is @@ -1869,11 +1869,13 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata( const auto LangVersionMask = (uint64_t(1) << 63); const bool HasVersionedLanguage = Record[1] & LangVersionMask; + const uint32_t LanguageVersion = Record.size() > 22 ? Record[22] : 0; auto *CU = DICompileUnit::getDistinct( Context, HasVersionedLanguage - ? DISourceLanguageName(Record[1] & ~LangVersionMask, 0) + ? DISourceLanguageName(Record[1] & ~LangVersionMask, + LanguageVersion) : DISourceLanguageName(Record[1]), getMDOrNull(Record[2]), getMDString(Record[3]), Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]), Record[8], |
