Author: Johannes Doerfert Date: 2021-05-06T02:10:36-05:00 New Revision: 3f14596700093bce436ae27178c307e842398b65
URL: https://github.com/llvm/llvm-project/commit/3f14596700093bce436ae27178c307e842398b65 DIFF: https://github.com/llvm/llvm-project/commit/3f14596700093bce436ae27178c307e842398b65.diff LOG: [OpenMP] Ensure the DefaultMapperId has a location A user reported an assertion (below) but without a reproducer. I failed to create a test myself but from the assertion one can derive the problem. I set the DefaultMapperId location now to make sure this doesn't cause trouble. ``` clang-13: .../DeclTemplate.h:1940: void clang::ClassTemplateSpecializationDecl::setPointOfInstantiation(clang::SourceLocation): Assertion `Loc.isValid() && "point of instantiation must be valid!"' failed. ``` Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D100621 Added: Modified: clang/lib/Sema/SemaOpenMP.cpp Removed: ################################################################################ diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 9ac3e4878184..068065b5e3be 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -5578,9 +5578,6 @@ processImplicitMapsWithDefaultMappers(Sema &S, DSAStackTy *Stack, if (S.getLangOpts().OpenMP < 50) return; SmallVector<OMPClause *, 4> ImplicitMaps; - DeclarationNameInfo DefaultMapperId; - DefaultMapperId.setName(S.Context.DeclarationNames.getIdentifier( - &S.Context.Idents.get("default"))); for (int Cnt = 0, EndCnt = Clauses.size(); Cnt < EndCnt; ++Cnt) { auto *C = dyn_cast<OMPMapClause>(Clauses[Cnt]); if (!C) @@ -5636,6 +5633,10 @@ processImplicitMapsWithDefaultMappers(Sema &S, DSAStackTy *Stack, if (It == Visited.end()) { // Try to find the associated user-defined mapper. CXXScopeSpec MapperIdScopeSpec; + DeclarationNameInfo DefaultMapperId; + DefaultMapperId.setName(S.Context.DeclarationNames.getIdentifier( + &S.Context.Idents.get("default"))); + DefaultMapperId.setLoc(E->getExprLoc()); ExprResult ER = buildUserDefinedMapperRef( S, Stack->getCurScope(), MapperIdScopeSpec, DefaultMapperId, BaseType, /*UnresolvedMapper=*/nullptr); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits