lkml.org 
[lkml]   [2013]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 08/14] sched: add latency tracing for -deadline tasks.

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


\
 
 \ /
  Last update: 2013-11-27 17:01    [W:0.971 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site