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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2005-12-31 03:19:52         |2016-5-17

--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jan van Dijk from comment #10)
> Has this been (partly) fixed in the meantime? The OP's test program compiles
> just fine with:
> 
>   g++ (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
>   g++ (SUSE Linux) 5.3.1 20160412 [gcc-5-branch revision 234894]
>   g++ (GCC) 7.0.0 20160516 (experimental)
>   x86_64-w64-mingw32.shared-g++ (GCC) 4.9.3

It's not fixed, but we reduced the internal header dependencies so that
<iostream> no longer includes <math.h>

Try:

#include <random>
using namespace std;

const double M_PI = 3.1415;

int main()
{
    double pi = M_PI;
}

In file included from /home/jwakely/gcc/7/include/c++/7.0.0/cmath:45:0,
                 from /home/jwakely/gcc/7/include/c++/7.0.0/random:38,
                 from g.cc:1:
g.cc:4:14: error: expected unqualified-id before numeric constant
 const double M_PI = 3.1415;
              ^
g.cc: In function ‘int main()’:
g.cc:8:12: warning: unused variable ‘pi’ [-Wunused-variable]
     double pi = M_PI;
            ^~


> I also see that GNU_SOURCE is no longer implicitly defined. At least, I do
> not
> see that in the output of "g++ -dM -E - < /dev/null" anymore.
> 
> Are there any remaining issues, or should this report be closed?

"g++ -E -" compiles as C (see PR 67023)

It's till set:

$ g++ -x c++ -E -dM  - </dev/null | fgrep GNU
#define __GNUC_PATCHLEVEL__ 0
#define __GNUC__ 7
#define __GNUG__ 7
#define __GNUC_STDC_INLINE__ 1
#define __GNUC_MINOR__ 0
#define _GNU_SOURCE 1

Reply via email to