On Sun, Jul 22, 2007 at 06:06:57PM +0100, Al Viro wrote: > On Sun, Jul 22, 2007 at 08:08:09PM +0400, Alexey Dobriyan wrote: > > Andi, with new vDSO code sparse fails to check with usual invocation here: > > Fucks with CF and not in a good way... > > CF := $(PROFILING) -mcmodel=small -fPIC -g0 -O2 -fasynchronous-unwind-tables -m64 > > $(obj)/vclock_gettime.o: CFLAGS = $(CF) > $(obj)/vgetcpu.o: CFLAGS = $(CF) > > s/CF/CCF/ in there (arch/x86_64/vdso/Makefile) fixes gcc problems; sparse > ones remain and I'll look into that when I get some sleep (26 hours uptime > right now). I think I have a good idea of what's going on there, but > I'd rather not touch that code until tonight. > > For now just rename the variable in makefile (obviously the right thing > to do) and that will give you sparse runs not aborted at that point. Actually, ed evaluate.c <<EOF /evaluate_member_dereference /examine_symbol_type/m/ctype = w q EOF ought to take care of sparse, AFAICS. IOW, in evaluate_member_dereference() we need to do examine_symbol_type(ctype) before checking ctype->type, etc. As it is, we end up with SYM_TYPEOF node there and it's not expanded until we'd checked if we have SYM_STRUCT. We would, after expansion, but we don't do it until too late. I haven't checked if that's causes any regressions, but it looks straightforward enough to be a plausible fix. I won't test it until tonight, though (see above). Minimal testcase is struct foo {int x;} v; typeof(v) *p; void bar(void) { p->x = 0; } and any serious regression testing should get both the sparse tests and comparing kernel builds with and without that fix... - 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