https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114181
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |MOVED Status|WAITING |RESOLVED --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to g.peterhoff from comment #3) > Of course issubnormal is defined in math.h (in my case line 1088, gcc 13.2). libstdc++'s cmath does: ``` #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS #include_next <math.h> #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS ... #undef fpclassify #undef isfinite #undef isinf #undef isnan #undef isnormal #undef signbit #undef isgreater #undef isgreaterequal #undef isless #undef islessequal #undef islessgreater #undef isunordered ``` And then libstdc++'s math.h does: ``` #if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS # include_next <math.h> #else #ifndef _GLIBCXX_MATH_H #define _GLIBCXX_MATH_H 1 # include <cmath> ``` If you are implementing a cmath for a C++ implementation, you need to a similar thing and `#undef` it. The math.h that defines issubnormal comes from glibc.