"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