This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [Patch] libstdc++/29989
Gabriel Dos Reis wrote:
Instead of remving the #undef, the fix should have been to do it
systematically. c++config is a good place.
Note that the below isn't *instead* is *additionally* ;)
Paolo.
////////////////
2006-12-04 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29989 (again)
* include/bits/c++config: #undef min and max.
* testsuite/18_support/numeric_limits/29989.cc: New.
Index: include/bits/c++config
===================================================================
--- include/bits/c++config (revision 119482)
+++ include/bits/c++config (working copy)
@@ -193,4 +193,8 @@
// for something else under certain OSes (see BADNAMES).
#define __N(msgid) (msgid)
+// For example, <windows.h> is known to #define min and max as macros...
+#undef min
+#undef max
+
// End of prewritten config; the discovered settings follow.
Index: testsuite/18_support/numeric_limits/29989.cc
===================================================================
--- testsuite/18_support/numeric_limits/29989.cc (revision 0)
+++ testsuite/18_support/numeric_limits/29989.cc (revision 0)
@@ -0,0 +1,23 @@
+// { dg-do compile }
+
+// Copyright (C) 2006 Free Software Foundation
+//
+// 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// libstdc++/29989
+#define max(a,b) quirk
+#include <limits>