https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94476
Bug ID: 94476 Summary: NSDMI deferred parse Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nathan at gcc dot gnu.org Target Milestone: --- This code, extracted from <filesystem> leaves an unparsed NSDMI for _M_type. That kills the module streamer, which doesn't expect to meet such things. Bizarrely, removing either the 'signed char' underlying type, the ctor declaration, or the _M_path field removes the problem. Not sure if the non-module compiler copes? enum class file_type : signed char { none = 0 }; class directory_entry { public: directory_entry(int); int _M_path; file_type _M_type = file_type::none; };