diff mbox series

Add <bit> and <version> to freestanding headers

Message ID 20180813185738.GA10224@redhat.com
State New
Headers show
Series Add <bit> and <version> to freestanding headers | expand

Commit Message

Jonathan Wakely Aug. 13, 2018, 6:57 p.m. UTC
* include/Makefile.am: Install <bit> and <version> for freestanding.
	* include/Makefile.in: Regenerate.
	* testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.

Tested x86_64-linux, committed to trunk.
commit 4c758384cab0b274b0d7626411483c5b366b308d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Aug 13 13:39:48 2018 +0100

    Add <bit> and <version> to freestanding headers
    
            * include/Makefile.am: Install <bit> and <version> for freestanding.
            * include/Makefile.in: Regenerate.
            * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
diff mbox series

Patch

diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 70db3cb6260..271695806ff 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -1359,10 +1359,10 @@  install-data-local: install-freestanding-headers
 endif
 
 # This is a subset of the full install-headers rule.  We only need <ciso646>,
-# <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>,
-# <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
-# <cstdbool>, <type_traits>, <atomic>, and any files which they include (and
-# which we provide).
+# <cstddef>, <cfloat>, <limits>, <climits>, <version>, <cstdint>, <cstdlib>,
+# <new>, <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
+# <cstdbool>, <type_traits>, <bit>, <atomic>, and any files which they include
+# (and which we provide).
 # <new>, <typeinfo>, <exception>, and <initializer_list> are installed by
 # libsupc++, so only the others and the sub-includes are copied here.
 install-freestanding-headers:
@@ -1375,7 +1375,7 @@  install-freestanding-headers:
 	  ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
-	for file in limits type_traits atomic; do \
+	for file in limits type_traits atomic bit version; do \
 	  $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
 	for file in ciso646 cstddef cfloat climits cstdint cstdlib \
diff --git a/libstdc++-v3/testsuite/17_intro/freestanding.cc b/libstdc++-v3/testsuite/17_intro/freestanding.cc
index e5126ce5926..4c8498707c4 100644
--- a/libstdc++-v3/testsuite/17_intro/freestanding.cc
+++ b/libstdc++-v3/testsuite/17_intro/freestanding.cc
@@ -30,6 +30,10 @@ 
 #include <initializer_list>
 #include <type_traits>
 
+// C++2a headers:
+#include <bit>
+#include <version>
+
 int main()
 {
   std::exception e;
@@ -47,5 +51,10 @@  int main()
 
   std::initializer_list<int> ilisti __attribute__((unused));
 
+#if __cplusplus > 201703L
+  static_assert( std::ispow2(256u) );
+  static_assert( __cpp_lib_void_t >= 201411L );
+#endif
+
   return 0;
 }