------- Comment #21 from howarth at nitro dot med dot uc dot edu  2006-11-01 
14:00 -------
This bug is rather confusing. It appears that the actual macros for isfinite on
Darwin PPC look like...

  static __inline__ int __inline_isinff( float __x ) { return
__builtin_fabsf(__x) == __builtin_inff(); }
  static __inline__ int __inline_isinfd( double __x ) { return
__builtin_fabs(__x) == __builtin_inf(); }
  static __inline__ int __inline_isinf( long double __x ) { return
__builtin_fabsl(__x) == __builtin_infl(); }
  static __inline__ int __inline_isfinitef( float __x ) { return __x == __x &&
__builtin_fabsf(__x) != __builtin_inff(); }
  static __inline__ int __inline_isfinited( double __x ) { return __x == __x &&
__builtin_fabs(__x) != __builtin_inf(); }
  static __inline__ int __inline_isfinite( long double __x ) { return __x ==
__x && __builtin_fabsl(__x) != __builtin_infl(); }

I assume that the __builtin_##### entries are actually library function calls
and not macros themselves.
If that is the case, why would the isfinite macros break at higher optimization
levels?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29302

Reply via email to