https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110153
Bug ID: 110153 Summary: [modules] Static module mapper format cannot handle header unit paths with spaces Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: boris at kolpackov dot net Target Milestone: --- The static module mapper format (-fmodule-mapper=<file>[?<ident>], as described here[1] and implemented in c++tools/resolver.cc) uses spaces to separate the module names from BMI file names and as a result cannot handle header unit names that contain spaces. While the header names that contain spaces are not very likely, the header unit names include the directory components which could plausibly contain spaces. Possible ways to fix this that came to mind: 1. Use the same quoting/escaping mechanism as in the dynamic mapper (see the libcody documentation[2]). 2. Currently the separator is either a space or a tab. We could change it to be only tab (assuming that paths with tabs are a lot less likely than with spaces). [1] https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Module-Mapper.html [2] https://github.com/urnathan/libcody#packet-encoding