This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch,avr] Fix PR59396: Ignore leading '*' in warning generation for ISR names


On Thu, Mar 13, 2014 at 02:24:06PM +0100, Georg-Johann Lay wrote:
> 
> Problem is that the assembler name might or might not be prefixed by '*'
> depending on when TARGET_SET_CURRENT_FUNCTION is called.
> 
> The change is just to fix wrong warning because the current implementation
> of TARGET_SET_CURRENT_FUNCTION /always/ skips the first char when the
> assembler name is set.

FWIW, there's default_strip_name_encoding (varasm.c), which does the same 
thing, and is used by a couple of other targets.

Regards
Senthil

> 
> 	PR target/59396
> 	* config/avr/avr.c (avr_set_current_function): Skip the first
> 	char of the (assembler) name provided it's a '*'.
> 

> Index: config/avr/avr.c
> ===================================================================
> --- config/avr/avr.c	(revision 208532)
> +++ config/avr/avr.c	(working copy)
> @@ -600,10 +600,15 @@ avr_set_current_function (tree decl)
>        const char *name;
>  
>        name = DECL_ASSEMBLER_NAME_SET_P (decl)
> -        /* Remove the leading '*' added in set_user_assembler_name.  */
> -        ? 1 + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
> +        ? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
>          : IDENTIFIER_POINTER (DECL_NAME (decl));
>  
> +      /* Skip a leading '*' that might still prefix the assembler name,
> +         e.g. in non-LTO runs.  */
> +
> +      if (*name == '*')
> +        name++;
> +
>        /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
>           using this when it switched from SIGNAL and INTERRUPT to ISR.  */
>  
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]