This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question about default_elf_asm_named_section function
- From: Ian Lance Taylor <iant at google dot com>
- To: "Iyer\, Balaji V" <balaji dot v dot iyer at intel dot com>
- Cc: "'gcc\ at gcc dot gnu dot org'" <gcc at gcc dot gnu dot org>
- Date: Thu, 13 Oct 2011 21:37:57 -0700
- Subject: Re: Question about default_elf_asm_named_section function
- References: <2950715866004049A240A2F9BB410E7315F42971CC@azsmsx502.amr.corp.intel.com>
"Iyer, Balaji V" <balaji.v.iyer@intel.com> writes:
> This email is in reference to the "default_elf_asm_named_section" function in the varasm.c file.
>
> This function is defined like this:
>
> void
> default_elf_asm_named_section (const char *name, unsigned int flags,
> tree decl ATTRIBUTE_UNUSED)
>
>
> But, inside the function, there is this if-statement:
>
>
> if (HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))
> {
> if (TREE_CODE (decl) == IDENTIFIER_NODE)
> fprintf (asm_out_file, ",%s,comdat", IDENTIFIER_POINTER (decl));
> else
> fprintf (asm_out_file, ",%s,comdat",
> IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
> }
>
>
> The decl is set with "ATTRIBUTE_UNUSED" but the if-statement is using "decl." Should we remove the attribute unused tag near the "tree decl" or is the if-statement a deadcode that should never be ?
ATTRIBUTE_UNUSED does not mean "this parameter is never used." It means
"this parameter may not be used." The difference is due to #ifdefs--if
a parameter is only used in code that is something #ifdef'ed out, then
the parameter should be marked as ATTRIBUTE_UNUSED.
In this case the parameter is always used, so we might as well remove
the ATTRIBUTE_UNUSED.
Ian