lildmh added a comment.
In D67833#2155196 <https://reviews.llvm.org/D67833#2155196>, @fhahn wrote:
> I think this change introduced the following warnings, where `auto &` is used
> for types that are always copied. It would be great if you could take a look.
>
> lvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8011:24: warning: loop
> variable 'L' is always a copy because the range of type
> 'clang::OMPMappableExprListClause<clang::OMPToClause>::const_component_lists_range'
> (aka
> 'iterator_range<clang::OMPMappableExprListClause<clang::OMPToClause>::const_component_lists_iterator>')
> does not return a reference [-Wrange-loop-analysis]
> for (const auto &L : C->component_lists()) {
> ^
> llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8011:12: note: use
> non-reference type 'std::__1::tuple<const clang::ValueDecl *,
> llvm::ArrayRef<clang::OMPClauseMappableExprCommon::MappableComponent>, const
> clang::ValueDecl *>'
> for (const auto &L : C->component_lists()) {
> ^~~~~~~~~~~~~~~
> llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8016:24: warning: loop
> variable 'L' is always a copy because the range of type
> 'clang::OMPMappableExprListClause<clang::OMPFromClause>::const_component_lists_range'
> (aka
> 'iterator_range<clang::OMPMappableExprListClause<clang::OMPFromClause>::const_component_lists_iterator>')
> does not return a reference [-Wrange-loop-analysis]
> for (const auto &L : C->component_lists()) {
> ^
> llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8016:12: note: use
> non-reference type 'std::__1::tuple<const clang::ValueDecl *,
> llvm::ArrayRef<clang::OMPClauseMappableExprCommon::MappableComponent>, const
> clang::ValueDecl *>'
> for (const auto &L : C->component_lists()) {
> ^~~~~~~~~~~~~~~
> llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8032:24: warning: loop
> variable 'L' is always a copy because the range of type
> 'clang::OMPMappableExprListClause<clang::OMPUseDevicePtrClause>::const_component_lists_range'
> (aka
> 'iterator_range<clang::OMPMappableExprListClause<clang::OMPUseDevicePtrClause>::const_component_lists_iterator>')
> does not return a reference [-Wrange-loop-analysis]
> for (const auto &L : C->component_lists()) {
> ^
> llvm-project/clang/lib/CodeGen/CGOpenMPRuntime.cpp:8032:12: note: use
> non-reference type 'std::__1::tuple<const clang::ValueDecl *,
> llvm::ArrayRef<clang::OMPClauseMappableExprCommon::MappableComponent>, const
> clang::ValueDecl *>'
> for (const auto &L : C->component_lists()) {
> ^~~~~~~~~~~~~~~
> 3 warnings generated.
>
Thanks, I'll fix this soon. Basically `&L` needs to be `L` instead in those 3
places. Since I don't have upload permission, it will be great if you can do
the change quickly
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67833/new/
https://reviews.llvm.org/D67833
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits