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:4.012 / U:2.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site