https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105013
--- Comment #2 from James Allwright <jamesallwright at yahoo dot co.uk> --- Here is the valgrind output valgrind ./bug ==2490== Memcheck, a memory error detector ==2490== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==2490== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info ==2490== Command: ./bug ==2490== out = command = ==2490== Conditional jump or move depends on uninitialised value(s) ==2490== at 0x1092DB: example_func (bug.c:37) ==2490== by 0x1090D3: main (bug.c:44) ==2490== ==2490== ==2490== HEAP SUMMARY: ==2490== in use at exit: 0 bytes in 0 blocks ==2490== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated ==2490== ==2490== All heap blocks were freed -- no leaks are possible ==2490== ==2490== Use --track-origins=yes to see where uninitialised values come from ==2490== For lists of detected and suppressed errors, rerun with: -s ==2490== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)