https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108955

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #3)
> The code is definitely invalid.
> 
> How to fix it is to move this:
> template <class T>
> inline void AssertMoveable(T *t = 0) { if(t) AssertMoveable0(t); }
> 
> 
> Below the definitions of AssertMoveable0.
>  (__GNUC__ < 4 || __GNUC_MINOR__ < 1)
> 
> That is check is just wrong. Especially while GCC 13.0.1 is a stage 4
> compiler.
> 
> Maybe it should be just:
> __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)

That is if this is GCC before GCC 4.1.0 do it differently.
The reason why not many people hit this is because the first official release
of a major release of GCC these days is N.1.0 and you would only hit this
during the development of the trunk ...

Reply via email to