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

Reply via email to