Re: [PATCH 08/14] sched: add latency tracing for -deadline tasks.

From: Ingo Molnar
Date: Wed Nov 27 2013 - 10:42:14 EST



and even this works:

triton:~> cat test.c

struct foo {
int a;
int b;
};

int litter_our_stack(void)
{
volatile struct foo x = { .a = 1, .b = 2 };

return x.b;
}

int test_code(void)
{
volatile struct foo x = { .a = 1, /* .b not initialized explicitly */ };

return x.b;
}

int main(void)
{
return litter_our_stack() + test_code();
}

triton:~> gcc -Wall -Wextra -O0 -o test test.c; ./test; echo $?
2
triton:~>


The result is 2, so x.b in test_code() got explicitly set to 0.

If it was uninitialized, not only would we expect a compiler warning,
but we'd also get a result of '4'. (the two functions have the same
stack depth, so 'litter_our_stack()' initializes .b to 2.)

-O0 guarantees that GCC just dumbly implements these functions without
any optimizations.

Thanks,

ngo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/