"Iyer, Balaji V" <balaji.v.i...@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

Reply via email to