Author: a.sidorin Date: Tue Jan 9 06:25:05 2018 New Revision: 322079 URL: http://llvm.org/viewvc/llvm-project?rev=322079&view=rev Log: [ASTImporter] Fix missing SourceLoc import for ObjCMethodDecl selectors
Patch by Nico Rieck, test case by Sean Callanan! Differential Revision: https://reviews.llvm.org/D6550 Modified: cfe/trunk/lib/AST/ASTImporter.cpp cfe/trunk/test/ASTMerge/interface/Inputs/interface1.m Modified: cfe/trunk/lib/AST/ASTImporter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=322079&r1=322078&r2=322079&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTImporter.cpp (original) +++ cfe/trunk/lib/AST/ASTImporter.cpp Tue Jan 9 06:25:05 2018 @@ -2857,9 +2857,13 @@ Decl *ASTNodeImporter::VisitObjCMethodDe ToParams[I]->setOwningFunction(ToMethod); ToMethod->addDeclInternal(ToParams[I]); } + SmallVector<SourceLocation, 12> SelLocs; D->getSelectorLocs(SelLocs); - ToMethod->setMethodParams(Importer.getToContext(), ToParams, SelLocs); + for (SourceLocation &Loc : SelLocs) + Loc = Importer.Import(Loc); + + ToMethod->setMethodParams(Importer.getToContext(), ToParams, SelLocs); ToMethod->setLexicalDeclContext(LexicalDC); Importer.Imported(D, ToMethod); Modified: cfe/trunk/test/ASTMerge/interface/Inputs/interface1.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ASTMerge/interface/Inputs/interface1.m?rev=322079&r1=322078&r2=322079&view=diff ============================================================================== --- cfe/trunk/test/ASTMerge/interface/Inputs/interface1.m (original) +++ cfe/trunk/test/ASTMerge/interface/Inputs/interface1.m Tue Jan 9 06:25:05 2018 @@ -100,4 +100,6 @@ @implementation I15 : I12 @end - +@interface ImportSelectorSLoc { } +-(int)addInt:(int)a toInt:(int)b moduloInt:(int)c; // don't crash here +@end _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits