diff --git a/Packages/Interval_arithmetic/changes.txt b/Packages/Interval_arithmetic/changes.txt index 6748e484191..aee374001bc 100644 --- a/Packages/Interval_arithmetic/changes.txt +++ b/Packages/Interval_arithmetic/changes.txt @@ -1,3 +1,7 @@ +5 May 2004 Sylvain Pion +- ICC is defining __GNUG__ by default on Linux. + Protect against it with !defined __INTEL_COMPILER. + 18 Apr 2004 Sylvain Pion - Rename Huge_val to infinity, and move it to FPU.h. diff --git a/Packages/Interval_arithmetic/include/CGAL/FPU.h b/Packages/Interval_arithmetic/include/CGAL/FPU.h index 45c1837e37e..e761682f8c0 100644 --- a/Packages/Interval_arithmetic/include/CGAL/FPU.h +++ b/Packages/Interval_arithmetic/include/CGAL/FPU.h @@ -40,7 +40,7 @@ extern "C" { #elif defined __SUNPRO_CC || (defined __KCC && defined __sun) # include #elif defined __osf || defined __osf__ -# ifdef __GNUG__ +# ifdef __GNUG__ && !defined __INTEL_COMPILER // GCC seems to remove (fixincludes) read_rnd/write_rnd... # include "/usr/include/float.h" # else @@ -97,7 +97,7 @@ const double infinity = HUGE_VAL; // Inline function to stop compiler optimization. inline double IA_force_to_double(double x) { -#if defined __GNUG__ && \ +#if defined __GNUG__ && !defined __INTEL_COMPILER && \ ! (__GNUG__ == 3 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0) // This appears to be faster but is GNU specific, // and GCC 3.0.0 has a bug with it. @@ -127,7 +127,7 @@ inline double IA_force_to_double(double x) // because operations are done with a wrong rounding mode at compile time. // G++ also uses __builtin_constant_p(). #ifndef CGAL_IA_DONT_STOP_CONSTANT_PROPAGATION -# if defined __GNUG__ && __GNUG__ < 3 +# if defined __GNUG__ && __GNUG__ < 3 && !defined __INTEL_COMPILER // Note : GCC 3 doesn't guarantee __builtin_constant_p to return false // when he will not do cprop :(. # define CGAL_IA_STOP_CPROP(x) \