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

            Bug ID: 98451
           Summary: Re-exporting iostream
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: patrick.kox at commandoregel dot be
  Target Milestone: ---

I'm following an article by Mr. Sidwell on C++ Modules (link:
https://accu.org/journals/overload/28/159/sidwell/#FN02)

Around Example 02 he processes string_view to be able to use it in example 02,
this command works with string_view, but it fails with iostream

the command is: g++ -fmodules-ts -std=c++20 -c -x c++-system-header string_view
when string_view is copied to the source directory this creates a gcm file in a
subdirectory of gcm.cache

using this command with iostream there is the following output:
In file included from /opt/gcc-11/include/c++/11.0.0/bits/move.h:57,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_pair.h:59,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:64,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/type_traits:634:31: error: conflicting global
module declaration ‘template<class ...> using __void_t = void’
  634 |   template<typename...> using __void_t = void;
      |                               ^~~~~~~~
In file included from /opt/gcc-11/include/c++/11.0.0/bits/move.h:57,
                 from
/opt/gcc-11/include/c++/11.0.0/bits/nested_exception.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/exception:148,
                 from /opt/gcc-11/include/c++/11.0.0/ios:39,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/type_traits:634:31: note: existing declaration
‘template<class ...> using __void_t = void’
  634 |   template<typename...> using __void_t = void;
      |                               ^~~~~~~~
In file included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:94:26: note: during load of
binding ‘__gnu_cxx::__normal_iterator’
   94 |       typedef __gnu_cxx::__normal_iterator<pointer, basic_string> 
iterator;
      |                          ^~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: error:
conflicting global module declaration ‘template<class _Tp> using
iter_reference_t = decltype (* declval<_Tp&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: note: existing
declaration ‘template<class _Tp>  requires  __dereferenceable<_Tp> using
iter_reference_t = decltype (* declval<_Tp&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: error:
conflicting global module declaration ‘using iter_reference_t = decltype (*
declval<_Tp&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: note: existing
declaration ‘using iter_reference_t = decltype (* declval<_Tp&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: error:
conflicting global module declaration ‘template<class _Tp> using __type =
typename std::ranges::__cust_imove::_IMove::__result::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: note: existing
declaration ‘template<class _Tp>  requires  __dereferenceable<_Tp> using __type
= typename std::ranges::__cust_imove::_IMove::__result::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: error:
conflicting global module declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<_Tp>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: note: existing
declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<_Tp>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: error:
conflicting global module declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<_Tp&>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: note: existing
declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<_Tp&>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: error:
conflicting global module declaration ‘template<class _Tp> using
iter_rvalue_reference_t = std::ranges::__cust_imove::_IMove::__type<_Tp&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: note: existing
declaration ‘template<class _Tp>  requires (__dereferenceable<_Tp>) &&
(__can_reference<typename
std::ranges::__cust_imove::_IMove::__result<_Tp&>::type>) using
iter_rvalue_reference_t = std::ranges::__cust_imove::_IMove::__type<_Tp&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: error:
conflicting global module declaration ‘using iter_rvalue_reference_t =
std::ranges::__cust_imove::_IMove::__type<_Tp&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: note: existing
declaration ‘using iter_rvalue_reference_t =
std::ranges::__cust_imove::_IMove::__type<_Tp&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: error:
conflicting global module declaration ‘using iter_reference_t = decltype (*
declval<const _In&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: note: existing
declaration ‘using iter_reference_t = decltype (* declval<const _In&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: error:
conflicting global module declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<const _In&>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:120:17: note: existing
declaration ‘using __type = typename
std::ranges::__cust_imove::_IMove::__result<const _In&>::type’
  120 |           using __type = typename __result<_Tp>::type;
      |                 ^~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: error:
conflicting global module declaration ‘using iter_rvalue_reference_t =
std::ranges::__cust_imove::_IMove::__type<const _In&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:146:11: note: existing
declaration ‘using iter_rvalue_reference_t =
std::ranges::__cust_imove::_IMove::__type<const _In&>’
  146 |     using iter_rvalue_reference_t
      |           ^~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/string_view:41,
of module /opt/gcc-11/include/c++/11.0.0/string_view, imported at
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:48,
        included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: error:
conflicting global module declaration ‘using iter_reference_t = decltype (*
declval<_Iter&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from
/opt/gcc-11/include/c++/11.0.0/bits/stl_iterator_base_types.h:71,
                 from /opt/gcc-11/include/c++/11.0.0/bits/stl_algobase.h:65,
                 from /opt/gcc-11/include/c++/11.0.0/bits/char_traits.h:39,
                 from /opt/gcc-11/include/c++/11.0.0/ios:40,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/iterator_concepts.h:76:11: note: existing
declaration ‘using iter_reference_t = decltype (* declval<_Iter&>())’
   76 |     using iter_reference_t = decltype(*std::declval<_Tp&>());
      |           ^~~~~~~~~~~~~~~~
In file included from /opt/gcc-11/include/c++/11.0.0/string:55,
                 from /opt/gcc-11/include/c++/11.0.0/bits/locale_classes.h:40,
                 from /opt/gcc-11/include/c++/11.0.0/bits/ios_base.h:41,
                 from /opt/gcc-11/include/c++/11.0.0/ios:42,
                 from /opt/gcc-11/include/c++/11.0.0/ostream:38,
                 from /opt/gcc-11/include/c++/11.0.0/iostream:39:
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:97:20: note: during load of
binding ‘std::reverse_iterator’
   97 |       typedef std::reverse_iterator<const_iterator>    
const_reverse_iterator;
      |                    ^~~~~~~~~~~~~~~~
/opt/gcc-11/include/c++/11.0.0/bits/basic_string.h:6054:65: internal compiler
error: tree check: expected binding_vector, have overload in
maybe_record_mergeable_decl, at cp/name-lookup.c:3562
 6054 |               const basic_string<_CharT, _Traits, _Alloc>& __rhs)
      |                                                                 ^
0x82be1c tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/tree.c:9810
0x6a4762 tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3338
0x6a4762 maybe_record_mergeable_decl
        ../../gcc/cp/name-lookup.c:3562
0x6a4762 do_pushdecl
        ../../gcc/cp/name-lookup.c:3864
0xa39a21 do_pushdecl
        ../../gcc/cp/name-lookup.c:4881
0xa39a21 do_pushdecl_with_scope
        ../../gcc/cp/name-lookup.c:4881
0xa39c85 pushdecl_namespace_level(tree_node*, bool)
        ../../gcc/cp/name-lookup.c:6245
0xad9c02 push_template_decl(tree_node*, bool)
        ../../gcc/cp/pt.c:6049
0x97ac4c start_preparsed_function(tree_node*, tree_node*, int)
        ../../gcc/cp/decl.c:16406
0x98f79f start_function(cp_decl_specifier_seq*, cp_declarator const*,
tree_node*)
        ../../gcc/cp/decl.c:16743
0xa7f77f cp_parser_function_definition_from_specifiers_and_declarator
        ../../gcc/cp/parser.c:29800
0xa7f77f cp_parser_init_declarator
        ../../gcc/cp/parser.c:21560
0xa85b4b cp_parser_single_declaration
        ../../gcc/cp/parser.c:30424
0xa85cb6 cp_parser_template_declaration_after_parameters
        ../../gcc/cp/parser.c:29996
0xa86460 cp_parser_explicit_template_declaration
        ../../gcc/cp/parser.c:30262
0xa88ba9 cp_parser_declaration
        ../../gcc/cp/parser.c:14006
0xa88159 cp_parser_toplevel_declaration
        ../../gcc/cp/parser.c:14104
0xa88159 cp_parser_declaration_seq_opt
        ../../gcc/cp/parser.c:13892
0xa885f2 cp_parser_namespace_body
        ../../gcc/cp/parser.c:20392
0xa885f2 cp_parser_namespace_definition
        ../../gcc/cp/parser.c:20370
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
  • [Bug c++/98451] New: Re-e... patrick.kox at commandoregel dot be via Gcc-bugs

Reply via email to