[Bug c++/99426] [modules] failed to read compiled module cluster 1186: Bad file data

markmigm at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Sep 8 04:39:49 GMT 2022


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

Mark Millard <markmigm at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |markmigm at gmail dot com

--- Comment #5 from Mark Millard <markmigm at gmail dot com> ---
I've run into this sort of problem under Fedora 36 with its g++ 12.2.1 :

# rm -fr gcm.cache/*
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC ios
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC iostream
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC ostream
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC iomanip
In module imported at /usr/include/c++/12/istream:38:1,
        included from /usr/include/c++/12/sstream:38,
                 from /usr/include/c++/12/bits/quoted_string.h:38,
                 from /usr/include/c++/12/iomanip:45:
/usr/include/c++/12/ios: error: failed to read compiled module cluster 927: Bad
file data
/usr/include/c++/12/ios: note: compiled module file is
‘gcm.cache/./usr/include/c++/12/ios.gcm’
In file included from /usr/include/c++/12/string:53,
                 from /usr/include/c++/12/bits/locale_classes.h:40,
                 from /usr/include/c++/12/bits/ios_base.h:41,
                 from /usr/include/c++/12/iomanip:40:
/usr/include/c++/12/bits/basic_string.h:3972:40: fatal error: failed to load
pendings for ‘__gnu_cxx::__stoa’
 3972 |   { return __gnu_cxx::__stoa<long, int>(&std::strtol, "stoi",
__str.c_str(),
      |           
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3973 |                                         __idx, __base); }
      |                                         ~~~~~~~~~~~~~~
compilation terminated.

But moving ios to be the last of the 4 did not generate any messages:

# rm -fr gcm.cache/*
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC iostream
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC ostream
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC iomanip
# c++ -std=c++20 -pedantic -Wall -Wextra -fmodules-ts -g -fPIC ios

I've run into other examples of order dependencies. I've not found a
way to predict a order that will be tolerated.

The "Last reconfirmed" could be updated.


More information about the Gcc-bugs mailing list