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 <nathanieloshead@gmail.com>
This commit is contained in:
Nathaniel Shead 2024-01-27 22:46:44 +11:00
parent 4822887b3c
commit a88e08feb8

View file

@ -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)