Skip to content

Commit e033ec2

Browse files
author
Gabor Marton
committed
[ASTImporter] Fix bug introduced in 2ba4e3a
2ba4e3a (Move FPFeatures from BinaryOperator bitfields to Trailing storage, D76384) introduced an assertion failure during CTU analysis. The reason is that in ASTNodeImporter::VisitCompoundAssignOperator the LHSType and the ResultType have been imported twice. Details: clang: ../../git/llvm-project/clang/lib/Basic/SourceManager.cpp:918: clang::FileID clang::SourceManager::getFileIDLoaded(unsigned int) const: Assertion `0 && "Invalid SLocOffset or bad function choice"' failed. clang::SourceManager::getDecomposedExpansionLoc(clang::SourceLocation) const clang::SourceManager::getPresumedLoc(clang::SourceLocation, bool) const clang::ASTImporter::Import(clang::SourceLocation) llvm::Error clang::ASTImporter::importInto<clang::SourceLocation>(clang::SourceLocation&, clang::SourceLocation const&) clang::ASTNodeImporter::ImportDeclParts(clang::NamedDecl*, clang::DeclContext*&, clang::DeclContext*&, clang::DeclarationName&, clang::NamedDecl*&, clang::SourceLocation&) clang::ASTNodeImporter::VisitRecordDecl(clang::RecordDecl*) clang::declvisitor::Base<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Decl*> >::Visit(clang::Decl*) clang::ASTImporter::Import(clang::Decl*) clang::ASTNodeImporter::VisitRecordType(clang::RecordType const*) clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::Visit(clang::Type const*) clang::ASTImporter::Import(clang::QualType) clang::ASTNodeImporter::VisitElaboratedType(clang::ElaboratedType const*) clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::Visit(clang::Type const*) clang::ASTImporter::Import(clang::QualType) clang::ASTNodeImporter::VisitPointerType(clang::PointerType const*) clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::Visit(clang::Type const*) clang::ASTImporter::Import(clang::QualType) clang::QualType clang::ASTNodeImporter::importChecked<clang::QualType>(llvm::Error&, clang::QualType const&) clang::ASTNodeImporter::VisitCompoundAssignOperator(clang::CompoundAssignOperator*)
1 parent 5d3a400 commit e033ec2

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

clang/lib/AST/ASTImporter.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -6818,8 +6818,7 @@ ASTNodeImporter::VisitCompoundAssignOperator(CompoundAssignOperator *E) {
68186818
Importer.getToContext(), ToLHS, ToRHS, E->getOpcode(), ToType,
68196819
E->getValueKind(), E->getObjectKind(), ToOperatorLoc,
68206820
E->getFPFeatures(Importer.getFromContext().getLangOpts()),
6821-
importChecked(Err, ToComputationLHSType),
6822-
importChecked(Err, ToComputationResultType));
6821+
ToComputationLHSType, ToComputationResultType);
68236822
}
68246823

68256824
Expected<CXXCastPath>

0 commit comments

Comments
 (0)