Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-06 Thread Josh Stone
On 07/06/2011 08:45 AM, Eric Blake wrote: >> #define _SDT_ARGARRAY(x) (__builtin_classify_type (x) == 14 \ >> || __builtin_classify_type (x) == 5) >> > > Too bad gcc doesn't document this builtin. It's documented in the Internals manual: http://gcc.gnu.org/online

Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-06 Thread Eric Blake
On 07/05/2011 09:03 PM, Josh Stone wrote: > I'm sorry to discover that you're fighting old sdt.h bugs. If only we > could put on our time-traveling cap and get it right the first time... > We do hope that all the corner cases are dealt with correctly in the > newest systemtap package. Please let

Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-06 Thread Josh Stone
On 07/05/2011 10:03 AM, Eric Blake wrote: > It is really annoying that gcc does not provide any counterpart to > __typeof__ that would let you produce the decayed type of an input > argument - life would be much simpler if there were a way to decay an > expression of type 'char[100]' into an interm

Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-05 Thread Eric Blake
On 07/04/2011 01:10 AM, Matthias Bolte wrote: >> +/* The double cast is necessary to silence gcc warnings; any pointer >> + * can safely go to intptr_t and back to void *, which collapses >> + * arrays into pointers; while any integer can be widened to intptr_t >> + * then cast to void *. */ >> +#

Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-04 Thread Matthias Bolte
2011/7/1 Eric Blake : > Systemtap 1.2 tried to expand STAP_PROBE3 into an > initialization: >  volatile __typeof__(arg) foo = arg; > but that fails if arg was declared as 'char arg[100]'. > Rather than make all callers to PROBE deal with the stupidity > of , we instead make PROBE cast away the pro

Re: [libvirt] [PATCH] build: work around older systemtap header

2011-07-03 Thread Wen Congyang
At 07/02/2011 05:43 AM, Eric Blake Write: > Systemtap 1.2 tried to expand STAP_PROBE3 into an > initialization: > volatile __typeof__(arg) foo = arg; > but that fails if arg was declared as 'char arg[100]'. > Rather than make all callers to PROBE deal with the stupidity > of , we instead make PR

[libvirt] [PATCH] build: work around older systemtap header

2011-07-01 Thread Eric Blake
Systemtap 1.2 tried to expand STAP_PROBE3 into an initialization: volatile __typeof__(arg) foo = arg; but that fails if arg was declared as 'char arg[100]'. Rather than make all callers to PROBE deal with the stupidity of , we instead make PROBE cast away the problem. Some of this preprocessor a