V3 PATCH: #undef some C99 math macros in <cmath>

Gabriel Dos Reis Gabriel.Dos-Reis@cmla.ens-cachan.fr
Thu Apr 5 19:24:00 GMT 2001


Benjamin Kosnik <bkoz@redhat.com> writes:

| a better way to do this would be to disable _USE_GNU so that math.h 
| doesn't define the C99 stuff at all. We're going to have to do something 

Does that behave correctly in case we're running on non-gnu system?

| similar to get long long working correctly. (I'm planing on working on 
| that after the backwards stuff gets finished/in)
| 
| also, can you please please please. Please. Please put in a testsuite 
| regression? 

Done with the patch attached.

-- Gaby

2001-04-06  Gabriel Dos Reis  <gdr@codesourcery.com>
  
	* testsuite/26_numerics/c99_macros.cc: Add test.

Index: testsuite/26_numerics/c99_macros.cc
===================================================================
RCS file: c99_macros.cc
diff -N c99_macros.cc
*** /dev/null	Tue May  5 13:32:27 1998
--- c99_macros.cc	Thu Apr  5 19:17:55 2001
***************
*** 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;
+ }



More information about the Gcc-patches mailing list