This is somewhat off-topic. Perhaps the GCC development team should consider making this __GNUC__ stuff more clarified in the GCC Manual. Now, this __GNUC__ stuff appears to appear only in the CPP Manual (section 3.7.2). And the definition of similar macros such as __GFORTRAN__ and __GNUG__ may need to be further explained in this vein. Currently, __GFORTRAN__ means "The GNU Fortran compiler defines this." Should it rather mean "This is a GNU Fortran-complaint compiler", to be consistent with the meaning of __GNUC__? And, for example, should there be __GNUG_MINOR__ and __GNUG_PATCHLEVEL__ too? Interestingly, there is a __VERSION__ macro ("which describes the version of the compiler in use"). There is some discussion in this thread on whether these macros are defined in the preprocessor or the compiler proper. If these macros are processed by the preprocessor, and the C, C++, Fortran, etc compilers all share CPP, then how would the preprocessor report the correct version of the compiler in use? It somehow checks with the compiler to see whether it is C or Fortran, and then report the appropriate version of the compiler?
_________________________________________________________________ It’s a talkathon – but it’s not just talk. http://www.imtalkathon.com/?source=EML_WLH_Talkathon_JustTalk