In the testsuite for C is the file gcc.c-torture/execute/pr38151.c I just tried to compile this file with the GNU C compiler version 4.4 snapshot 20090102 using valgrind.
The debug output was ==32071== Conditional jump or move depends on uninitialised value(s) ==32071== at 0x8A1544: merge_classes (i386.c:4787) ==32071== by 0x8A69D6: classify_argument (i386.c:4912) ==32071== by 0x8A727C: construct_container (i386.c:5205) ==32071== by 0x8B1283: ix86_gimplify_va_arg (i386.c:6633) ==32071== by 0x4BE4FA: gimplify_va_arg_expr (builtins.c:5025) ==32071== by 0x5FE7F5: gimplify_expr (gimplify.c:6361) ==32071== by 0x613B69: gimplify_modify_expr (gimplify.c:4230) ==32071== by 0x5FDE09: gimplify_expr (gimplify.c:6333) I've had a quick look at the code, and I suspect that some array index checking around line 4912 of i386.c might help. This bug report may be related to the original source of this code, pr38151. -- Summary: PR38151: valgrind finds problem Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dcb314 at hotmail dot com GCC host triplet: x86_64-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38781