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

            Bug ID: 116671
           Summary: Compiling iostream and string as modules fails if
                    string is compiled first
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bmlushma at uwaterloo dot ca
  Target Milestone: ---

gcc will not compile iostream as a module if string has already been compiled 

gcc -v output:

Using built-in specs.
COLLECT_GCC=/usr/local/bin/g++-14.2.0
COLLECT_LTO_WRAPPER=/usr/local/gcc-14.2.0/libexec/gcc/x86_64-linux-gnu/14.2.0/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ./configure -v --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
--prefix=/usr/local/gcc-14.2.0 --enable-checking=release
--enable-languages=c,c++ --disable-multilib --program-suffix=-14.2.0
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.2.0 (GCC)


Exact command line:
/usr/local/bin/g++-14.2.0 -std=c++20 -fmodules-ts -c -x c++-system-header
string
/usr/local/bin/g++-14.2.0 -std=c++20 -fmodules-ts -c -x c++-system-header
iostream

Output:

In file included from
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.h:883,
                 from
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/local/gcc-14.2.0/include/c++/14.2.0/ios:44,
                 from /usr/local/gcc-14.2.0/include/c++/14.2.0/ostream:40,
                 from /usr/local/gcc-14.2.0/include/c++/14.2.0/iostream:41:
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc: In function
‘const _Facet* std::__try_use_facet(const locale&)’:
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:108:7: error:
template argument 3 is invalid
  108 |       _GLIBCXX_STD_FACET(codecvt<char, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:108:7: error:
expected primary-expression before ‘)’ token
  108 |       _GLIBCXX_STD_FACET(codecvt<char, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:123:7: error:
template argument 3 is invalid
  123 |       _GLIBCXX_STD_FACET(codecvt<wchar_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:123:7: error:
expected primary-expression before ‘)’ token
  123 |       _GLIBCXX_STD_FACET(codecvt<wchar_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:135:7: error:
template argument 3 is invalid
  135 |       _GLIBCXX_STD_FACET(codecvt<char16_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:135:7: error:
expected primary-expression before ‘)’ token
  135 |       _GLIBCXX_STD_FACET(codecvt<char16_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:136:7: error:
template argument 3 is invalid
  136 |       _GLIBCXX_STD_FACET(codecvt<char32_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_classes.tcc:136:7: error:
expected primary-expression before ‘)’ token
  136 |       _GLIBCXX_STD_FACET(codecvt<char32_t, char, mbstate_t>);
      |       ^~~~~~~~~~~~~~~~~~
In file included from
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/locale_facets.h:39,
                 from
/usr/local/gcc-14.2.0/include/c++/14.2.0/bits/basic_ios.h:37,
                 from /usr/local/gcc-14.2.0/include/c++/14.2.0/ios:46:
/usr/local/gcc-14.2.0/include/c++/14.2.0/cwctype: At global scope:
/usr/local/gcc-14.2.0/include/c++/14.2.0/cwctype:84:11: error: ‘typedef
unsigned int wint_t’ conflicts with a previous declaration
   84 |   using ::wint_t;
      |           ^~~~~~
‘
/usr/local/gcc-14.2.0/include/c++/14.2.0/cwctype:84: confused by earlier
errors, bailing out

Reply via email to