Re: [PATCH] dissect: use built_in_ident() instead of MK_IDENT()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 19/06/17 22:14, Luc Van Oostenryck wrote:
> The motivation for this patch was to allow sparse to be
> compiled with clang which doesn't like what is done
> on VLAs in the MK_IDENT() macro.
> 
> But also, I can't see any justification for not using the
> real thing to create identifiers: built_in_ident().
> 
> CC: Oleg Nesterov <oleg@xxxxxxxxxx>
> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx>
> ---
>  dissect.h      | 13 -------------
>  test-dissect.c |  6 +++---
>  2 files changed, 3 insertions(+), 16 deletions(-)
> 
> diff --git a/dissect.h b/dissect.h
> index 3b72b8988..5ac1f4d40 100644
> --- a/dissect.h
> +++ b/dissect.h
> @@ -25,16 +25,3 @@ struct reporter
>  };
>  
>  extern void dissect(struct symbol_list *, struct reporter *);
> -
> -#define	MK_IDENT(s)	({				\
> -	static struct {					\
> -		struct ident ident;			\
> -		char __[sizeof(s)];			\
> -	} ident = {{					\
> -		.len  = sizeof(s)-1,			\
> -		.name = s,				\
> -	}};						\
> -	&ident.ident;					\
> -})
> -
> -#endif

Hmm, does this compile?; you seem to have removed an #endif,
leaving an unbalanced '#ifndef DISSECT_H'.

ATB,
Ramsay Jones

> diff --git a/test-dissect.c b/test-dissect.c
> index a2548b7f2..862318f81 100644
> --- a/test-dissect.c
> +++ b/test-dissect.c
> @@ -47,7 +47,7 @@ static void r_symbol(unsigned mode, struct position *pos, struct symbol *sym)
>  	print_usage(pos, sym, mode);
>  
>  	if (!sym->ident)
> -		sym->ident = MK_IDENT("__asm__");
> +		sym->ident = built_in_ident("__asm__");
>  
>  	printf("%-32.*s %s\n",
>  		sym->ident->len, sym->ident->name,
> @@ -60,10 +60,10 @@ static void r_member(unsigned mode, struct position *pos, struct symbol *sym, st
>  
>  	print_usage(pos, sym, mode);
>  
> -	ni = MK_IDENT("?");
> +	ni = built_in_ident("?");
>  	si = sym->ident ?: ni;
>  	/* mem == NULL means entire struct accessed */
> -	mi = mem ? (mem->ident ?: ni) : MK_IDENT("*");
> +	mi = mem ? (mem->ident ?: ni) : built_in_ident("*");
>  
>  	printf("%.*s.%-*.*s %s\n",
>  		si->len, si->name,
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux