================ @@ -1525,15 +1525,24 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata( if (Record.size() < 6 || Record.size() > 8) return error("Invalid record"); - IsDistinct = Record[0]; + IsDistinct = Record[0] & 1; + bool SizeIsMetadata = Record[0] & 2; DINode::DIFlags Flags = (Record.size() > 6) ? static_cast<DINode::DIFlags>(Record[6]) : DINode::FlagZero; uint32_t NumExtraInhabitants = (Record.size() > 7) ? Record[7] : 0; + Metadata *SizeInBits; + if (SizeIsMetadata) { + SizeInBits = getMDOrNull(Record[3]); + } else { + SizeInBits = ConstantAsMetadata::get( + ConstantInt::get(Type::getInt64Ty(Context), Record[3])); + } ---------------- dwblaikie wrote:
Could use a conditional operator here (& similar places) - but I don't feel super strongly about it. This appears a few times - might be worth a helper function? https://github.com/llvm/llvm-project/pull/141106 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits