about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--NEWS8
-rw-r--r--math/complex.h11
3 files changed, 18 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 78ac067bfc..776323a0e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-01-08  Ulrich Drepper  <drepper@gmail.com>
 
+	[BZ #1350]
+	* math/complex.h (CMPLX, CMPLXF, CMPLXL): Define.
+
 	* configure.in: static is always set to yes.  Remove.
 	* config.make.in: Don't set build-static.
 	* Makeconfig: Remove use of build-static.
diff --git a/NEWS b/NEWS
index a85caef8cd..01f55dcb29 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2012-1-7
+GNU C Library NEWS -- history of user-visible changes.  2012-1-8
 Copyright (C) 1992-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -9,8 +9,8 @@ Version 2.16
 
 * The following bugs are resolved with this release:
 
-  13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13551, 13552,
-  13553, 13555, 13559
+  13525, 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13530,
+  13551, 13552, 13553, 13555, 13559
 
 * ISO C11 support:
 
@@ -29,6 +29,8 @@ Version 2.16
 
   + uchar.h support added
 
+  + CMPLX, CMPLXF, CMPLXL added
+
   Implemented by Ulrich Drepper.
 
 * Support for the IA-64 is removed and could live in ports.
diff --git a/math/complex.h b/math/complex.h
index cc6006e760..9cbcc7f7d0 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2006, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2000, 2006, 2011, 2012 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
@@ -49,6 +49,15 @@ __BEGIN_DECLS
 #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))
+# ifndef __NO_LONG_DOUBLE_MATH
+#  define CMPLXL(x, y) __builtin_complex ((double) (x), (double) (y))
+# endif
+#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',