On 2012-01-19 15:58:22 +0100, Duncan Sands wrote: > Hi Ludo, I didn't really get it. Why do you want to know whether the compiler > is GCC or not? Presumably because you have several versions of your code, > one version using GCC feature XYZ and the other not using XYZ. If so, the > logically correct (but maybe impractical) approach is to test if the compiler > supports XYZ, and switch between the two code versions depending on that. > For example if XYZ is "nested functions", do you have a version of your code > that uses nested functions and another that does not? If you don't have a > version that works with compilers like clang that don't support nested > functions, then why bother testing for nested function support? You will > discover the lack of nested function support when your code fails to compile.
I don't know whether Ludo can use this approach, but it not possible when providing a header file for some library (e.g. MPFR's mpfr.h). For ICC, one can test __ICC. For instance, here's what we have in mpfr.h (for the use of __builtin_constant_p and __extension__ ({ ... })): #if defined (__GNUC__) && !defined(__ICC) && !defined(__cplusplus) -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <http://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)