diff options
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
| -rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index 7ed140d..0ca55a26 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -2108,7 +2108,13 @@ void ModuleBitcodeWriter::writeDICompileUnit(const DICompileUnit *N,    assert(N->isDistinct() && "Expected distinct compile units");    Record.push_back(/* IsDistinct */ true); -  Record.push_back(N->getSourceLanguage().getUnversionedName()); +  auto Lang = N->getSourceLanguage(); +  Record.push_back(Lang.getName()); +  // Set bit so the MetadataLoader can distniguish between versioned and +  // unversioned names. +  if (Lang.hasVersionedName()) +    Record.back() ^= (uint64_t(1) << 63); +    Record.push_back(VE.getMetadataOrNullID(N->getFile()));    Record.push_back(VE.getMetadataOrNullID(N->getRawProducer()));    Record.push_back(N->isOptimized());  | 
