-/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
/*
* ISO C99: 7.3 Complex arithmetic <complex.h>
#undef I
#define I _Complex_I
+#if defined __USE_ISOC11 && __GNUC_PREREQ (4, 7)
+/* Macros to expand into expression of specified complex type. */
+# define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
+# define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (y))
+# define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
+#endif
+
/* The file <bits/cmathcalls.h> contains the prototypes for all the
actual math functions. These macros are used for those prototypes,
so we can easily declare each function as both `name' and `__name',
# define _Mfloat_ float
#endif
#define _Mdouble_ _Mfloat_
-#ifdef __STDC__
-# define __MATH_PRECNAME(name) name##f
-#else
-# define __MATH_PRECNAME(name) name/**/f
-#endif
+#define __MATH_PRECNAME(name) name##f
#include <bits/cmathcalls.h>
#undef _Mdouble_
#undef __MATH_PRECNAME
/* And the long double versions. It is non-critical to define them
here unconditionally since `long double' is required in ISO C99. */
-#if (__STDC__ - 0 || __GNUC__ - 0) \
- && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
+#if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
+ || defined __LDBL_COMPAT
# ifdef __LDBL_COMPAT
# undef __MATHDECL_1
# define __MATHDECL_1(type, function, args) \
# define _Mlong_double_ long double
# endif
# define _Mdouble_ _Mlong_double_
-# ifdef __STDC__
-# define __MATH_PRECNAME(name) name##l
-# else
-# define __MATH_PRECNAME(name) name/**/l
-# endif
+# define __MATH_PRECNAME(name) name##l
# include <bits/cmathcalls.h>
#endif
#undef _Mdouble_