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

--- Comment #10 from Harald van Dijk <harald at gigawatt dot nl> ---
(In reply to Jonathan Wakely from comment #9)
> (In reply to Harald van Dijk from comment #8)
> > (In reply to Andrew Pinski from comment #7)
> > > Isn't doing the extern "C" around standard C++ headers declared by the C++
> > > standard as undefined behavior?
> > 
> > It is (as is doing extern "C++" around standard C++ headers, for that
> > matter),
> 
> Where does it say that?

It's the exact same rule as for extern "C", [using.headers]p3. (And yes, it
does make a difference to not having extern "C++" around it and can cause
breakage, this is not purely hypothetical, but it's much less likely to cause
problems than extern "C".)

> > but <complex.h> only became a standard C++ header in C++11. This
> > bug is from 2003 and the comment before yours was from 2009, so I think
> > <complex.h> was not a standard C++ header yet.
> 
> Agreed. But there is no complex.h in the backward directory now.
>[...]
> Can we close this now?

Testing with GCC 11 as provided by Ubuntu, including <complex.h> will cause
GCC's c++/11/complex.h to be included, both in C++03 and in C++11 modes, but in
C++03 it just delegates to glibc's <complex.h>. To me, that looks like it's
fixed.

-- 
You are receiving this mail because:
You reported the bug.

Reply via email to