From: Jonathan Wakely Date: Fri, 11 Sep 2015 12:25:43 +0000 (+0100) Subject: Rationalise PCH headers and 17_intro/headers tests. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f12ddb6249f83e89a323296cd561da85bcc57d8b;p=gcc.git Rationalise PCH headers and 17_intro/headers tests. PR libstdc++/64857 * doc/xml/manual/using.xml: Improve aggregate header documentation. * doc/html/manual/*: Regenerate. * include/precompiled/extc++.h: Include for C++11 and later and include more extension headers. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove redundant header. * testsuite/17_intro/headers/c++200x/: Rename to c++2011. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove redundant headers. * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New. * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New. * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New. * testsuite/17_intro/headers/c++2014/operator_names.cc: New. * testsuite/17_intro/headers/c++2014/stdc++.cc: New. * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: New. From-SVN: r227684 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3bd33ba504c..03d24023bd0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,23 @@ 2015-09-11 Jonathan Wakely + PR libstdc++/64857 + * doc/xml/manual/using.xml: Improve aggregate header documentation. + * doc/html/manual/*: Regenerate. + * include/precompiled/extc++.h: Include for C++11 + and later and include more extension headers. + * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove + redundant header. + * testsuite/17_intro/headers/c++200x/: Rename to c++2011. + * testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove + redundant headers. + * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New. + * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New. + * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New. + * testsuite/17_intro/headers/c++2014/operator_names.cc: New. + * testsuite/17_intro/headers/c++2014/stdc++.cc: New. + * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: + New. + PR libstdc++/58265 * doc/xml/manual/intro.xml: Document LWG 2063 and 2064 resolutions. * doc/html/manual/bugs.html: Regenerate. diff --git a/libstdc++-v3/doc/html/manual/using.html b/libstdc++-v3/doc/html/manual/using.html index cc5c65079b0..5888002028a 100644 --- a/libstdc++-v3/doc/html/manual/using.html +++ b/libstdc++-v3/doc/html/manual/using.html @@ -11,7 +11,8 @@ The standard library conforms to the dialect of C++ specified by the -std option passed to the compiler. By default, g++ is equivalent to - g++ -std=gnu++98. + g++ -std=gnu++14 since GCC 6, and + g++ -std=gnu++98 for older releases.

Table 3.1. C++ Command Options

Option FlagsDescription
-std=c++98 or -std=c++03 Use the 1998 ISO C++ standard plus amendments.
-std=gnu++98 or -std=gnu++03 As directly above, with GNU extensions.
-std=c++11Use the 2011 ISO C++ standard.
-std=gnu++11As directly above, with GNU extensions.
-std=c++14Use the 2014 ISO C++ standard.
-std=gnu++14As directly above, with GNU extensions.
-fexceptionsSee exception-free dialect
-frttiAs above, but RTTI-free dialect.
-pthread or -pthreadsFor ISO C++11 diff --git a/libstdc++-v3/doc/html/manual/using_headers.html b/libstdc++-v3/doc/html/manual/using_headers.html index 7e4d5be9136..bb147944ad9 100644 --- a/libstdc++-v3/doc/html/manual/using_headers.html +++ b/libstdc++-v3/doc/html/manual/using_headers.html @@ -74,12 +74,15 @@ of std::sinf, std::sin, and std::sinl.

Precompiled Headers

There are three base header files that are provided. They can be used to precompile the standard headers and extensions into binary -files that may the be used to speed compiles that use these headers. +files that may then be used to speed up compilations that use these headers.

  • stdc++.h

    Includes all standard headers. Actual content varies depending on -language dialect. +language dialect.

  • stdtr1c++.h

    Includes all of <stdc++.h>, and adds all the TR1 headers. -

  • extc++.h

    Includes all of <stdtr1c++.h>, and adds all the Extension headers. -

How to construct a .gch file from one of these base header files.

First, find the include directory for the compiler. One way to do +

  • extc++.h

    Includes all of <stdc++.h>, and adds all the Extension headers +(and in C++98 mode also adds all the TR1 headers by including all of +<stdtr1c++.h>). +

  • To construct a .gch file from one of these base header files, +first find the include directory for the compiler. One way to do this is:

     g++ -v hello.cc
     
    diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml
    index bad49f20c61..2c8d179b489 100644
    --- a/libstdc++-v3/doc/xml/manual/using.xml
    +++ b/libstdc++-v3/doc/xml/manual/using.xml
    @@ -16,7 +16,8 @@
           The standard library conforms to the dialect of C++ specified by the
            option passed to the compiler.
           By default, g++ is equivalent to
    -      g++ -std=gnu++98.
    +      g++ -std=gnu++14 since GCC 6, and
    +      g++ -std=gnu++98 for older releases.
         
     
      
    @@ -718,7 +719,7 @@ and std::sinl.
     
     There are three base header files that are provided. They can be
     used to precompile the standard headers and extensions into binary
    -files that may the be used to speed compiles that use these headers.
    +files that may then be used to speed up compilations that use these headers.
     
     
     
    @@ -726,7 +727,7 @@ files that may the be used to speed compiles that use these headers.
     
       stdc++.h
     Includes all standard headers. Actual content varies depending on
    -language dialect.
    +language dialect.
     
     
     
    @@ -737,13 +738,14 @@ language dialect.
     extc++.h
    -Includes all of <stdtr1c++.h>, and adds all the Extension headers.
    +Includes all of <stdc++.h>, and adds all the Extension headers
    +(and in C++98 mode also adds all the TR1 headers by including all of
    +<stdtr1c++.h>).
     
     
    -How to construct a .gch file from one of these base header files.
    -
    -First, find the include directory for the compiler. One way to do
    +To construct a .gch file from one of these base header files,
    +first find the include directory for the compiler. One way to do
     this is:
     
     
    diff --git a/libstdc++-v3/include/precompiled/extc++.h b/libstdc++-v3/include/precompiled/extc++.h
    index de3775b36f5..8883e47fb0c 100644
    --- a/libstdc++-v3/include/precompiled/extc++.h
    +++ b/libstdc++-v3/include/precompiled/extc++.h
    @@ -28,15 +28,25 @@
     
     #if __cplusplus < 201103L
     #include 
    +#else
    +#include 
     #endif
     
     #include 
    +#if __cplusplus >= 201103L
    +# include 
    +#endif
    +#include 
     #include 
     #include 
     #include 
     #include 
    +#if __cplusplus >= 201103L
    +# include 
    +#endif
     #include 
     #include 
    +#include 
     #include 
     #include 
     #include 
    @@ -45,9 +55,13 @@
     #include 
     #include 
     #include 
    +#include 
     #include 
     #include 
     #include 
    +#if __cplusplus >= 201103L
    +# include 
    +#endif
     #include 
     #include 
     #include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
    index 7bc7ffe868c..20107d2cccf 100644
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
    @@ -35,7 +35,6 @@
     #define unused 1
     #endif
     
    -#include  // TODO: this is missing from 
     #include 
     
     int
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/42319.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/42319.cc
    deleted file mode 100644
    index 65afb572148..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/42319.cc
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -// { dg-do compile }
    -// { dg-options "-std=gnu++11" }
    -
    -// Copyright (C) 2009-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// libstdc++/42319
    -#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/67309.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/67309.cc
    deleted file mode 100644
    index 97df10f649f..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/67309.cc
    +++ /dev/null
    @@ -1,23 +0,0 @@
    -// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// { dg-options "-std=gnu++11 -fsingle-precision-constant" }
    -// { dg-do compile }
    -
    -// libstdc++/67309
    -#include  // TODO: this is missing from 
    -#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_attributes.cc
    deleted file mode 100644
    index ae15f31b11c..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_attributes.cc
    +++ /dev/null
    @@ -1,43 +0,0 @@
    -// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// { dg-options "-std=gnu++11" }
    -// { dg-do compile }
    -
    -// Ensure the library only uses the __name__ form for attributes.
    -// Don't test 'const' and 'noreturn' because they are reserved anyway.
    -#define abi_tag 1
    -#define always_inline 1
    -#ifndef __APPLE__
    -// darwin headers use these, see PR 64883
    -# define visibility 1
    -# define deprecated 1
    -#endif
    -#define packed 1
    -#define pure 1
    -// glibc's sysdeps/unix/sysv/linux/arm/sys/ucontext.h uses this on ARM.
    -#ifndef __arm__
    -#define unused 1
    -#endif
    -
    -#include  // TODO: this is missing from 
    -#include 
    -
    -int
    -main()
    -{
    -}
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_exceptions.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_exceptions.cc
    deleted file mode 100644
    index 13158d121bd..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_exceptions.cc
    +++ /dev/null
    @@ -1,21 +0,0 @@
    -// { dg-do compile }
    -// { dg-options "-std=gnu++11 -fno-exceptions" }
    -
    -// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_rtti.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_rtti.cc
    deleted file mode 100644
    index 7bbc25f0435..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_no_rtti.cc
    +++ /dev/null
    @@ -1,21 +0,0 @@
    -// { dg-do compile }
    -// { dg-options "-std=gnu++11 -fno-rtti" }
    -
    -// Copyright (C) 2010-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_pedantic_errors.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_pedantic_errors.cc
    deleted file mode 100644
    index ad5847eb7df..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/all_pedantic_errors.cc
    +++ /dev/null
    @@ -1,21 +0,0 @@
    -// { dg-do compile }
    -// { dg-options "-std=gnu++11 -pedantic-errors" }
    -
    -// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/operator_names.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/operator_names.cc
    deleted file mode 100644
    index 028c2efbcf7..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/operator_names.cc
    +++ /dev/null
    @@ -1,30 +0,0 @@
    -// { dg-do compile }
    -// { dg-options "-std=gnu++11 -fno-operator-names" }
    -
    -// Copyright (C) 2011-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// libstdc++/47662
    -
    -// Avoid using PCH
    -#include 
    -#include 
    -#include 
    -#include 
    -
    -int or, xor, and;
    -
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc
    deleted file mode 100644
    index d1c64b190a8..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc
    +++ /dev/null
    @@ -1,70 +0,0 @@
    -// FreeBSD wants warning clean system headers:
    -// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    -// { dg-options "-std=gnu++11" }
    -// { dg-do compile }
    -
    -// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// 17.4.1.2 Headers
    -
    -#include 
    -
    -// "C" compatibility headers
    -#include 
    -#ifdef _GLIBCXX_HAVE_COMPLEX_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_FENV_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_INTTYPES_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDBOOL_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDINT_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_TGMATH_H
    -#include 
    -#endif
    -#include 
    -#if __has_include()
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCHAR_H
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCTYPE_H
    -#include 
    -#endif
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc
    deleted file mode 100644
    index e51bdee70f6..00000000000
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -// FreeBSD wants warning clean system headers:
    -// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    -// { dg-options "-std=gnu++11" }
    -// { dg-do compile }
    -
    -// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    -// .
    -
    -// 17.4.1.2 Headers
    -
    -#include 
    -
    -// "C" compatibility headers
    -#include 
    -#ifdef _GLIBCXX_HAVE_COMPLEX_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_FENV_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_INTTYPES_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDBOOL_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDINT_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_TGMATH_H
    -#include 
    -#endif
    -#include 
    -#if __has_include()
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCHAR_H
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCTYPE_H
    -#include 
    -#endif
    -
    -#include 
    -
    -// "C" compatibility headers
    -#include 
    -#ifdef _GLIBCXX_HAVE_COMPLEX_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_FENV_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_INTTYPES_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDBOOL_H
    -#include 
    -#endif
    -#include 
    -#ifdef _GLIBCXX_HAVE_STDINT_H
    -#include 
    -#endif
    -#include 
    -#include 
    -#include 
    -#ifdef _GLIBCXX_HAVE_TGMATH_H
    -#include 
    -#endif
    -#include 
    -#if __has_include()
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCHAR_H
    -#include 
    -#endif
    -#ifdef _GLIBCXX_HAVE_WCTYPE_H
    -#include 
    -#endif
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
    new file mode 100644
    index 00000000000..65afb572148
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
    @@ -0,0 +1,22 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++11" }
    +
    +// Copyright (C) 2009-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// libstdc++/42319
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
    new file mode 100644
    index 00000000000..409b38da59f
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
    @@ -0,0 +1,22 @@
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// { dg-options "-std=gnu++11 -fsingle-precision-constant" }
    +// { dg-do compile }
    +
    +// libstdc++/67309
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
    new file mode 100644
    index 00000000000..8c3d0078576
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
    @@ -0,0 +1,42 @@
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// { dg-options "-std=gnu++11" }
    +// { dg-do compile }
    +
    +// Ensure the library only uses the __name__ form for attributes.
    +// Don't test 'const' and 'noreturn' because they are reserved anyway.
    +#define abi_tag 1
    +#define always_inline 1
    +#ifndef __APPLE__
    +// darwin headers use these, see PR 64883
    +# define visibility 1
    +# define deprecated 1
    +#endif
    +#define packed 1
    +#define pure 1
    +// glibc's sysdeps/unix/sysv/linux/arm/sys/ucontext.h uses this on ARM.
    +#ifndef __arm__
    +#define unused 1
    +#endif
    +
    +#include 
    +
    +int
    +main()
    +{
    +}
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
    new file mode 100644
    index 00000000000..13158d121bd
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++11 -fno-exceptions" }
    +
    +// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
    new file mode 100644
    index 00000000000..7bbc25f0435
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++11 -fno-rtti" }
    +
    +// Copyright (C) 2010-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
    new file mode 100644
    index 00000000000..ad5847eb7df
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++11 -pedantic-errors" }
    +
    +// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
    new file mode 100644
    index 00000000000..028c2efbcf7
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
    @@ -0,0 +1,30 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++11 -fno-operator-names" }
    +
    +// Copyright (C) 2011-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// libstdc++/47662
    +
    +// Avoid using PCH
    +#include 
    +#include 
    +#include 
    +#include 
    +
    +int or, xor, and;
    +
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
    new file mode 100644
    index 00000000000..d1c64b190a8
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
    @@ -0,0 +1,70 @@
    +// FreeBSD wants warning clean system headers:
    +// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    +// { dg-options "-std=gnu++11" }
    +// { dg-do compile }
    +
    +// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// 17.4.1.2 Headers
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
    new file mode 100644
    index 00000000000..e51bdee70f6
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
    @@ -0,0 +1,117 @@
    +// FreeBSD wants warning clean system headers:
    +// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    +// { dg-options "-std=gnu++11" }
    +// { dg-do compile }
    +
    +// Copyright (C) 2007-2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// 17.4.1.2 Headers
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
    index c482fbd9c4d..c395e1dab75 100644
    --- a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
    @@ -34,8 +34,6 @@
     #define unused 1
     #endif
     
    -#include  // TODO: this is missing from 
    -#include   // TODO: this is missing from 
     #include 
     
     int
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
    new file mode 100644
    index 00000000000..b5157c8af0b
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++14 -fno-exceptions" }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
    new file mode 100644
    index 00000000000..8b9fec7b3cf
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++14 -fno-rtti" }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
    new file mode 100644
    index 00000000000..742315d82df
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
    @@ -0,0 +1,21 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++14 -pedantic-errors" }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +#include 
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
    new file mode 100644
    index 00000000000..c347368954c
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
    @@ -0,0 +1,30 @@
    +// { dg-do compile }
    +// { dg-options "-std=gnu++14 -fno-operator-names" }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// libstdc++/47662
    +
    +// Avoid using PCH
    +#include 
    +#include 
    +#include 
    +#include 
    +
    +int or, xor, and;
    +
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
    new file mode 100644
    index 00000000000..0528b33a64d
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
    @@ -0,0 +1,70 @@
    +// FreeBSD wants warning clean system headers:
    +// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    +// { dg-options "-std=gnu++14" }
    +// { dg-do compile }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// 17.4.1.2 Headers
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif
    diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
    new file mode 100644
    index 00000000000..67b51cee95c
    --- /dev/null
    +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
    @@ -0,0 +1,117 @@
    +// FreeBSD wants warning clean system headers:
    +// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } }
    +// { dg-options "-std=gnu++14" }
    +// { dg-do compile }
    +
    +// Copyright (C) 2015 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 3, 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 COPYING3.  If not see
    +// .
    +
    +// 17.4.1.2 Headers
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif
    +
    +#include 
    +
    +// "C" compatibility headers
    +#include 
    +#ifdef _GLIBCXX_HAVE_COMPLEX_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_FENV_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_INTTYPES_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDBOOL_H
    +#include 
    +#endif
    +#include 
    +#ifdef _GLIBCXX_HAVE_STDINT_H
    +#include 
    +#endif
    +#include 
    +#include 
    +#include 
    +#ifdef _GLIBCXX_HAVE_TGMATH_H
    +#include 
    +#endif
    +#include 
    +#if __has_include()
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCHAR_H
    +#include 
    +#endif
    +#ifdef _GLIBCXX_HAVE_WCTYPE_H
    +#include 
    +#endif