Report the section name in case of section type conflicts

The section name might the user a hint of what is going on.

gcc/

	* varasm.cc (get_section): Include name of section in
	diagnostic messages.
This commit is contained in:
Florian Weimer 2024-11-15 12:00:47 +01:00
parent 9676da9fc2
commit 71bf2bef5e

View File

@ -355,17 +355,20 @@ get_section (const char *name, unsigned int flags, tree decl,
&& decl != sect->named.decl) && decl != sect->named.decl)
{ {
if (decl != NULL && DECL_P (decl)) if (decl != NULL && DECL_P (decl))
error ("%+qD causes a section type conflict with %qD", error ("%+qD causes a section type conflict with %qD"
decl, sect->named.decl); " in section %qs",
decl, sect->named.decl, name);
else else
error ("section type conflict with %qD", sect->named.decl); error ("section type conflict with %qD in section %qs",
sect->named.decl, name);
inform (DECL_SOURCE_LOCATION (sect->named.decl), inform (DECL_SOURCE_LOCATION (sect->named.decl),
"%qD was declared here", sect->named.decl); "%qD was declared here", sect->named.decl);
} }
else if (decl != NULL && DECL_P (decl)) else if (decl != NULL && DECL_P (decl))
error ("%+qD causes a section type conflict", decl); error ("%+qD causes a section type conflict for section %qs",
decl, name);
else else
error ("section type conflict"); error ("section type conflict for section %qs", name);
/* Make sure we don't error about one section multiple times. */ /* Make sure we don't error about one section multiple times. */
sect->common.flags |= SECTION_OVERRIDE; sect->common.flags |= SECTION_OVERRIDE;
} }