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.