• Andrii Nakryiko's avatar
    selftests/bpf: Fix GCC11 compiler warnings in -O2 mode · d3b0b800
    Andrii Nakryiko authored
    When compiling selftests in -O2 mode with GCC1, we get three new
    compilations warnings about potentially uninitialized variables.
    
    Compiler is wrong 2 out of 3 times, but this patch makes GCC11 happy
    anyways, as it doesn't cost us anything and makes optimized selftests
    build less annoying.
    
    The amazing one is tc_redirect case of token that is malloc()'ed before
    ASSERT_OK_PTR() check is done on it. Seems like GCC pessimistically
    assumes that libbpf_get_error() will dereference the contents of the
    pointer (no it won't), so the only way I found to shut GCC up was to do
    zero-initializaing calloc(). This one was new to me.
    
    For linfo case, GCC didn't realize that linfo_size will be initialized
    by the function that is returning linfo_size as out parameter.
    
    core_reloc.c case was a real bug, we can goto cleanup before initializing
    obj. But we don't need to do any clean up, so just continue iteration
    intstead.
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20220211190927.1434329-1-andrii@kernel.org
    d3b0b800
btf.c 207 KB