This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

note: parameter passing for argument of type '...' changed in GCC 7.1?


Hello!

I've got a project which - when compiled with "arm-none-eabi" GCC 7.1
without optimizations - produces quite a lot of such messages:

-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --

In file included from ../../include/distortos/internal/scheduler/SoftwareTimerList.hpp:17:0,
                 from ../../include/distortos/internal/scheduler/SoftwareTimerSupervisor.hpp:15,
                 from SoftwareTimerSupervisor.cpp:12:
../../include/estd/SortedIntrusiveList.hpp: In static member function 'static estd::SortedIntrusiveList<Compare, T, NodePointer, U>::iterator estd::SortedIntrusiveList<Compare, T, NodePointer, U>::erase(estd::SortedIntrusiveList<Compare, T, NodePointer, U>::iterator) [with Compare = distortos::internal::SoftwareTimerAscendingTimePoint; T = distortos::internal::SoftwareTimerListNode; estd::IntrusiveListNode T::* NodePointer = &distortos::internal::SoftwareTimerListNode::node; U = distortos::internal::SoftwareTimerControlBlock]':
../../include/estd/SortedIntrusiveList.hpp:257:18: note: parameter passing for argument of type 'const iterator {aka const estd::IntrusiveListIterator<distortos::internal::SoftwareTimerListNode, &distortos::internal::SoftwareTimerListNode::node, distortos::internal::SoftwareTimerControlBlock>}' changed in GCC 7.1
  static iterator erase(const iterator position)
                  ^~~~~
...
In file included from /home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/bits/stl_algobase.h:71:0,
                 from /home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/bits/char_traits.h:39,
                 from /home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/ios:40,
                 from /home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/ostream:38,
                 from /home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/iterator:64,
                 from ../../include/estd/IntrusiveList.hpp:15,
                 from ../../include/distortos/internal/scheduler/SoftwareTimerListNode.hpp:17,
                 from ../../include/distortos/internal/scheduler/SoftwareTimerList.hpp:15,
                 from ../../include/distortos/internal/scheduler/SoftwareTimerSupervisor.hpp:15,
                 from SoftwareTimerSupervisor.cpp:12:
/home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/bits/predefined_ops.h: In member function 'bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = estd::IntrusiveListIterator<distortos::internal::SoftwareTimerListNode, &distortos::internal::SoftwareTimerListNode::node, distortos::internal::SoftwareTimerControlBlock>; _Predicate = estd::SortedIntrusiveList<Compare, T, NodePointer, U>::Implementation::findInsertPosition(estd::SortedIntrusiveList<Compare, T, NodePointer, U>::const_reference) [with Compare = distortos::internal::SoftwareTimerAscendingTimePoint; T = distortos::internal::SoftwareTimerListNode; estd::IntrusiveListNode T::* NodePointer = &distortos::internal::SoftwareTimerListNode::node; U = distortos::internal::SoftwareTimerControlBlock]::<lambda(const distortos::internal::SoftwareTimerControlBlock&)>]':
/home/freddie/arm-none-eabi-gcc-7.1.0-170503/arm-none-eabi/include/c++/7.1.0/bits/predefined_ops.h:282:2: note: parameter passing for argument of type 'estd::IntrusiveListIterator<distortos::internal::SoftwareTimerListNode, &distortos::internal::SoftwareTimerListNode::node, distortos::internal::SoftwareTimerControlBlock>' changed in GCC 7.1
  operator()(_Iterator __it)
  ^~~~~~~~

-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --

Some of the messages (like the first one above) are triggered by my
code, but some of them (like the second one above) are coming from
within libstdc++ headers.

As I mentioned earlier, the messages appear only if -O0 is selected -
for any other optimization level the messages are gone.

The problem here is that I have absolutely no idea what this message is
supposed to mean (; Should I somehow fix/change/improve the code? If
possible, I would like to change my code so that it doesn't trigger any
such notes, as this is very confusing for the users...

I tried searching for some more info, but just found a thread on this
mailing list with a patch that introduces these messages, however I did
not really understand how it relates to my code...

Thanks in advance for any info!

Regards,
FCh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]