From: Nathaniel Shead Date: Sat, 27 Jan 2024 11:46:44 +0000 (+1100) Subject: c++: Handle error header names in modules [PR107594] X-Git-Tag: basepoints/gcc-15~1626 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a88e08feb8367898e0562622517d33f95684a03d;p=thirdparty%2Fgcc.git c++: Handle error header names in modules [PR107594] When there are no include paths while preprocessing a header-name token, an empty STRING_CST is returned. This patch ensures this is handled when attempting to create a module for this name. PR c++/107594 gcc/cp/ChangeLog: * module.cc (get_module): Bail on empty name. Signed-off-by: Nathaniel Shead --- diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 840c7ef6dabd..3c2fef0e3f4b 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -14050,6 +14050,12 @@ get_primary (module_state *parent) module_state * get_module (tree name, module_state *parent, bool partition) { + /* We might be given an empty NAME if preprocessing fails to handle + a header-name token. */ + if (name && TREE_CODE (name) == STRING_CST + && TREE_STRING_LENGTH (name) == 0) + return nullptr; + if (partition) { if (!parent)