This revision was automatically updated to reflect the committed changes. Closed by commit rG51abcebbb6e5: [OpenMP] Use an explicit copy in a range-based for (authored by Mordante).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70046/new/ https://reviews.llvm.org/D70046 Files: clang/lib/CodeGen/CGOpenMPRuntime.cpp Index: clang/lib/CodeGen/CGOpenMPRuntime.cpp =================================================================== --- clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ clang/lib/CodeGen/CGOpenMPRuntime.cpp @@ -7940,17 +7940,17 @@ "Expect a executable directive"); const auto *CurExecDir = CurDir.get<const OMPExecutableDirective *>(); for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, C->getMapType(), C->getMapTypeModifiers(), /*ReturnDevicePointer=*/false, C->isImplicit()); } for (const auto *C : CurExecDir->getClausesOfKind<OMPToClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, OMPC_MAP_to, llvm::None, /*ReturnDevicePointer=*/false, C->isImplicit()); } for (const auto *C : CurExecDir->getClausesOfKind<OMPFromClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, OMPC_MAP_from, llvm::None, /*ReturnDevicePointer=*/false, C->isImplicit()); } @@ -7966,7 +7966,7 @@ for (const auto *C : CurExecDir->getClausesOfKind<OMPUseDevicePtrClause>()) { - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { assert(!L.second.empty() && "Not expecting empty list of components!"); const ValueDecl *VD = L.second.back().getAssociatedDeclaration(); VD = cast<ValueDecl>(VD->getCanonicalDecl()); @@ -8119,7 +8119,7 @@ for (const auto *C : CurMapperDir->clauselists()) { const auto *MC = cast<OMPMapClause>(C); - for (const auto &L : MC->component_lists()) { + for (const auto L : MC->component_lists()) { InfoGen(L.first, L.second, MC->getMapType(), MC->getMapTypeModifiers(), /*ReturnDevicePointer=*/false, MC->isImplicit()); } @@ -8288,7 +8288,7 @@ "Expect a executable directive"); const auto *CurExecDir = CurDir.get<const OMPExecutableDirective *>(); for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) { - for (const auto &L : C->decl_component_lists(VD)) { + for (const auto L : C->decl_component_lists(VD)) { assert(L.first == VD && "We got information for the wrong declaration??"); assert(!L.second.empty() && @@ -8441,7 +8441,7 @@ // Map other list items in the map clause which are not captured variables // but "declare target link" global variables. for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) { - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { if (!L.first) continue; const auto *VD = dyn_cast<VarDecl>(L.first);
Index: clang/lib/CodeGen/CGOpenMPRuntime.cpp =================================================================== --- clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ clang/lib/CodeGen/CGOpenMPRuntime.cpp @@ -7940,17 +7940,17 @@ "Expect a executable directive"); const auto *CurExecDir = CurDir.get<const OMPExecutableDirective *>(); for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, C->getMapType(), C->getMapTypeModifiers(), /*ReturnDevicePointer=*/false, C->isImplicit()); } for (const auto *C : CurExecDir->getClausesOfKind<OMPToClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, OMPC_MAP_to, llvm::None, /*ReturnDevicePointer=*/false, C->isImplicit()); } for (const auto *C : CurExecDir->getClausesOfKind<OMPFromClause>()) - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { InfoGen(L.first, L.second, OMPC_MAP_from, llvm::None, /*ReturnDevicePointer=*/false, C->isImplicit()); } @@ -7966,7 +7966,7 @@ for (const auto *C : CurExecDir->getClausesOfKind<OMPUseDevicePtrClause>()) { - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { assert(!L.second.empty() && "Not expecting empty list of components!"); const ValueDecl *VD = L.second.back().getAssociatedDeclaration(); VD = cast<ValueDecl>(VD->getCanonicalDecl()); @@ -8119,7 +8119,7 @@ for (const auto *C : CurMapperDir->clauselists()) { const auto *MC = cast<OMPMapClause>(C); - for (const auto &L : MC->component_lists()) { + for (const auto L : MC->component_lists()) { InfoGen(L.first, L.second, MC->getMapType(), MC->getMapTypeModifiers(), /*ReturnDevicePointer=*/false, MC->isImplicit()); } @@ -8288,7 +8288,7 @@ "Expect a executable directive"); const auto *CurExecDir = CurDir.get<const OMPExecutableDirective *>(); for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) { - for (const auto &L : C->decl_component_lists(VD)) { + for (const auto L : C->decl_component_lists(VD)) { assert(L.first == VD && "We got information for the wrong declaration??"); assert(!L.second.empty() && @@ -8441,7 +8441,7 @@ // Map other list items in the map clause which are not captured variables // but "declare target link" global variables. for (const auto *C : CurExecDir->getClausesOfKind<OMPMapClause>()) { - for (const auto &L : C->component_lists()) { + for (const auto L : C->component_lists()) { if (!L.first) continue; const auto *VD = dyn_cast<VarDecl>(L.first);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits