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/