-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Closed
Description
The following warning is produced in AppleClang 12:
../include/pybind11/cast.h:2095:26: warning: loop variable 'a' is always a copy because the range of type 'detail::args_proxy' does not return a reference [-Wrange-loop-analysis]
for (const auto &a : ap)
^
../include/pybind11/cast.h:2095:14: note: use non-reference type 'pybind11::handle'
for (const auto &a : ap)
^~~~~~~~~~~~~~~
../include/pybind11/cast.h:2127:26: warning: loop variable 'k' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &k : reinterpret_borrow<dict>(kp)) {
^
../include/pybind11/cast.h:2127:14: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &k : reinterpret_borrow<dict>(kp)) {
^~~~~~~~~~~~~~~
In file included from ../tests/pybind11_cross_module_tests.cpp:10:
In file included from ../tests/pybind11_tests.h:2:
../include/pybind11/pybind11.h:1497:34: warning: loop variable 'kv' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &kv : entries) {
^
../include/pybind11/pybind11.h:1497:22: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &kv : entries) {
^~~~~~~~~~~~~~~~
../include/pybind11/pybind11.h:1509:34: warning: loop variable 'kv' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &kv : entries) {
^
../include/pybind11/pybind11.h:1509:22: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &kv : entries) {
^~~~~~~~~~~~~~~~
../include/pybind11/pybind11.h:1524:34: warning: loop variable 'kv' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &kv : entries) {
^
../include/pybind11/pybind11.h:1524:22: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &kv : entries) {
^~~~~~~~~~~~~~~~
../include/pybind11/pybind11.h:1538:34: warning: loop variable 'kv' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &kv : entries)
^
../include/pybind11/pybind11.h:1538:22: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &kv : entries)
^~~~~~~~~~~~~~~~
../include/pybind11/pybind11.h:1626:26: warning: loop variable 'kv' is always a copy because the range of type 'pybind11::dict' does not return a reference [-Wrange-loop-analysis]
for (const auto &kv : entries)
^
../include/pybind11/pybind11.h:1626:14: note: use non-reference type 'std::__1::pair<pybind11::handle, pybind11::handle>'
for (const auto &kv : entries)
^~~~~~~~~~~~~~~~
7 warnings generated.
And two more:
[26/43] Building CXX object tests/CMakeFiles/pybind11_tests.dir/test_pytypes.cpp.o
../tests/test_pytypes.cpp:131:26: warning: loop variable 'item' is always a copy because the range of type 'pybind11::detail::str_attr_accessor' (aka 'accessor<accessor_policies::str_attr>') does not return a reference [-Wrange-loop-analysis]
for (const auto &item : o.attr("begin_end")) {
^
../tests/test_pytypes.cpp:131:14: note: use non-reference type 'pybind11::handle'
for (const auto &item : o.attr("begin_end")) {
^~~~~~~~~~~~~~~~~~
1 warning generated.
[28/43] Building CXX object tests/CMakeFiles/pybind11_tests.dir/test_operator_overloading.cpp.o
../tests/test_operator_overloading.cpp:116:23: warning: explicitly assigning value of variable of type 'const pybind11::detail::self_t' to itself [-Wself-assign-overloaded]
.def(py::self -= py::self)
~~~~~~~~ ^ ~~~~~~~~
../tests/test_operator_overloading.cpp:120:23: warning: explicitly assigning value of variable of type 'const pybind11::detail::self_t' to itself [-Wself-assign-overloaded]
.def(py::self /= py::self)
~~~~~~~~ ^ ~~~~~~~~
2 warnings generated.
Metadata
Metadata
Assignees
Labels
No labels