https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61269

            Bug ID: 61269
           Summary: <type_traits> includes <cstdint> inside std namespace
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: daniel at constexpr dot org

Partial diff from commit f2b58c906cf64f3e082bda9808b9f049bb71d5b4:

--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -41,6 +41,15 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION

+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+# if defined (__UINT_LEAST16_TYPE__) && defined(__UINT_LEAST32_TYPE__)
+  typedef __UINT_LEAST16_TYPE__ uint_least16_t;
+  typedef __UINT_LEAST32_TYPE__ uint_least32_t;
+# else
+#  include <cstdint>
+# endif
+#endif


Not reproducible with GCC as it defines __UINT_LEAST16_TYPE__ and
__UINT_LEAST32_TYPE__ (at least on Linux amd64), but breaks with other
compilers like Clang that end up on that #else branch.

Reply via email to