std_cmath.h: Get rid of C99 math macros.
authorGabriel Dos Reis <gdr@codesourcery.com>
Fri, 6 Apr 2001 19:14:27 +0000 (19:14 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Fri, 6 Apr 2001 19:14:27 +0000 (19:14 +0000)
        * include/c_std/bits/std_cmath.h: Get rid of C99 math macros.
        * testsuite/26_numerics/c99_macros.cc: Add test.

From-SVN: r41159

libstdc++-v3/ChangeLog
libstdc++-v3/include/c_std/bits/std_cmath.h
libstdc++-v3/testsuite/26_numerics/c99_macros.cc [new file with mode: 0644]

index 3322bde6883f68b658208441723af80b05410b6a..56078fdab06b5419f053c59e1577e1af92cd8e43 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-06  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+        * include/c_std/bits/std_cmath.h: Get rid of C99 math macros.
+        * testsuite/26_numerics/c99_macros.cc: Add test.
+
 2001-04-06  Phil Edwards  <pme@sources.redhat.com>
 
        * docs/html/faq/index.html:  Update for 2.92, grab from RELEASE-NOTES.
index acddb33f28e620ed1d8ce17d5cd760b988d24004..db3e47f6f20b6cec67da581ca5513f6e4752898e 100644 (file)
 #undef tan
 #undef tanh
 
+// These are possible macros imported from C99-land.  They tend to break
+// well-formed C++ programs.  Just pretend we don't know about them.
+// At some point, we should provide extensions in std:: -- Gaby
+
+#undef fpclassify
+#undef isfinite
+#undef isinf
+#undef isnan
+#undef isnormal
+#undef signbit
+
+#undef isgreater
+#undef isgreaterequal
+#undef isless
+#undef islessequal
+#undef islessgreater
+#undef isunordered
+
 namespace std 
 {
   // Forward declaration of a helper function.  This really should be
diff --git a/libstdc++-v3/testsuite/26_numerics/c99_macros.cc b/libstdc++-v3/testsuite/26_numerics/c99_macros.cc
new file mode 100644 (file)
index 0000000..6a8a3ea
--- /dev/null
@@ -0,0 +1,61 @@
+// 2001-04-06 gdr
+
+// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+#include <math.h>
+
+void fpclassify() { }
+
+void isfinite() { }
+
+void isinf() { }
+
+void isnan() { }
+
+void isnormal() { }
+
+void signbit() { }
+
+void isgreater() { }
+
+void isgreaterequal() { }
+
+void isless() { }
+
+void islessequal() { }
+
+void islessgreater() { }
+
+void isunordered() { }
+
+int main()
+{
+  return 0;
+}