https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115243
Bug ID: 115243 Summary: error: stmt with wrong VUSE Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- This reduced C code: int g_6, func_11; void func_8(); void func_39( int * p_41, long p_42) { char trans_9; func_11 = trans_9 >= 32 ? p_42 : p_42 >> trans_9; if (func_11) *p_41 = 0; int l_59 = g_6; func_39( &l_59, 10); func_8(&l_59); } does this with recent gcc: [dcb38@fedora ~]$ ~/gcc/results/bin/gcc -c -w -O1 bug1030.c [dcb38@fedora ~]$ ~/gcc/results/bin/gcc -c -w -O2 bug1030.c bug1030.c: In function ‘func_39’: bug1030.c:4:6: error: stmt with wrong VUSE 4 | void func_39( int * p_41, long p_42) | ^~~~~~~ # .MEM_74 = VDEF <.MEM_6> l_59 = 0; expected .MEM_13