This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Broken include/c_std/bits/std_cerrno.h
- To: libstdc++ at gcc dot gnu dot org
- Subject: Re: Broken include/c_std/bits/std_cerrno.h
- From: Benjamin Kosnik <bkoz at redhat dot com>
- Date: Tue, 6 Mar 2001 12:55:35 -0800
after a review of the other files, we're not really defining these
macros or checking to see if they are or aren't defined. For the c_std
headers, this is probably not worth the trouble to do correctly and
consistently with all the macros. (assert, errno, offsetof, setjmp,
va_arg, va_end, va_start)
Here's a patch, assuming no screaming, it will go in later today.
2001-03-06 Nathan Myers <ncm@cantrip.org>
Benjamin Kosnik <bkoz@redhat.com>
* include/c_std/bits/std_cerrno.h: Don't define errno in std::.
* testsuite/17_intro/header_cerrno.cc (test01): New file.
* testsuite/17_intro/header_cassert.cc (test01): New file.
* testsuite/17_intro/header_cstddef.cc (test01): New file.
* testsuite/17_intro/header_csetjmp.cc (test01): New file.
* testsuite/17_intro/header_cstdarg.cc (test01): New file.
Index: include/c_std/bits/std_cerrno.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/c_std/bits/std_cerrno.h,v
retrieving revision 1.5
diff -c -p -r1.5 std_cerrno.h
*** std_cerrno.h 2001/02/05 22:27:40 1.5
--- std_cerrno.h 2001/03/06 20:50:51
***************
*** 1,6 ****
// The -*- C++ -*- error number header.
! // Copyright (C) 1997, 1998, 1999 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
--- 1,6 ----
// The -*- C++ -*- error number header.
! // Copyright (C) 1997, 1998, 1999, 2001 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
***************
*** 39,51 ****
#pragma GCC system_header
#include <errno.h>
- namespace std
- {
- extern "C" int errno;
- }
-
#endif
-
-
-
-
--- 39,42 ----
Index: testsuite/17_intro/header_cassert.cc
===================================================================
RCS file: header_cassert.cc
diff -N header_cassert.cc
*** /dev/null Tue May 5 13:32:27 1998
--- header_cassert.cc Tue Mar 6 12:52:08 2001
***************
*** 0 ****
--- 1,40 ----
+ // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ // Copyright (C) 2001 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.
+
+ // 17.4.1.2 Headers, cassert
+
+ #include <cassert>
+
+ namespace gnu
+ {
+ void test01()
+ {
+ assert (true);
+ #ifndef assert
+ #error "assert_must_be_a_macro"
+ #endif
+ }
+ }
+
+ int main()
+ {
+ gnu::test01();
+ return 0;
+ }
Index: testsuite/17_intro/header_cerrno.cc
===================================================================
RCS file: header_cerrno.cc
diff -N header_cerrno.cc
*** /dev/null Tue May 5 13:32:27 1998
--- header_cerrno.cc Tue Mar 6 12:52:08 2001
***************
*** 0 ****
--- 1,40 ----
+ // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ // Copyright (C) 2001 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.
+
+ // 17.4.1.2 Headers, cerrno
+
+ #include <cerrno>
+
+ namespace gnu
+ {
+ void test01()
+ {
+ int i = errno;
+ #ifndef errno
+ #error "errno_must_be_a_macro"
+ #endif
+ }
+ }
+
+ int main()
+ {
+ gnu::test01();
+ return 0;
+ }
Index: testsuite/17_intro/header_csetjmp.cc
===================================================================
RCS file: header_csetjmp.cc
diff -N header_csetjmp.cc
*** /dev/null Tue May 5 13:32:27 1998
--- header_csetjmp.cc Tue Mar 6 12:52:08 2001
***************
*** 0 ****
--- 1,41 ----
+ // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ // Copyright (C) 2001 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.
+
+ // 17.4.1.2 Headers, csetjmp
+
+ #include <csetjmp>
+
+ namespace gnu
+ {
+ void test01()
+ {
+ std::jmp_buf env;
+ int i = setjmp(env);
+ #ifndef setjmp
+ #error "setjmp_must_be_a_macro"
+ #endif
+ }
+ }
+
+ int main()
+ {
+ gnu::test01();
+ return 0;
+ }
Index: testsuite/17_intro/header_cstdarg.cc
===================================================================
RCS file: header_cstdarg.cc
diff -N header_cstdarg.cc
*** /dev/null Tue May 5 13:32:27 1998
--- header_cstdarg.cc Tue Mar 6 12:52:08 2001
***************
*** 0 ****
--- 1,46 ----
+ // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ // Copyright (C) 2001 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.
+
+ // 17.4.1.2 Headers, cstdarg
+
+ #include <cstdarg>
+
+ namespace gnu
+ {
+ void test01()
+ {
+ std::va_list list;
+ #ifndef va_arg
+ #error "va_arg_must_be_a_macro"
+ #endif
+ #ifndef va_end
+ #error "va_end_must_be_a_macro"
+ #endif
+ #ifndef va_start
+ #error "va_start_must_be_a_macro"
+ #endif
+ }
+ }
+
+ int main()
+ {
+ gnu::test01();
+ return 0;
+ }
Index: testsuite/17_intro/header_cstddef.cc
===================================================================
RCS file: header_cstddef.cc
diff -N header_cstddef.cc
*** /dev/null Tue May 5 13:32:27 1998
--- header_cstddef.cc Tue Mar 6 12:52:08 2001
***************
*** 0 ****
--- 1,46 ----
+ // 2001-02-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ // Copyright (C) 2001 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.
+
+ // 17.4.1.2 Headers, cstddef
+
+ #include <cstddef>
+
+ namespace gnu
+ {
+ struct test_type
+ {
+ int i;
+ int j;
+ };
+
+ void test01()
+ {
+ std::size_t i = offsetof(struct test_type, i);
+ #ifndef offsetof
+ #error "offsetof_must_be_a_macro"
+ #endif
+ }
+ }
+
+ int main()
+ {
+ gnu::test01();
+ return 0;
+ }