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;
};

Reply via email to