My guess would be that some of the code for handling va_list being an array is needed in the case of generating a trap as well.
if (TREE_CODE (have_va_type) == ARRAY_TYPE) { if (TREE_CODE (TREE_TYPE (valist)) == ARRAY_TYPE) { tree p1 = build_pointer_type (TREE_TYPE (have_va_type)); valist = build_fold_addr_expr_with_type (valist, p1); } } (before gimplify_and_add (valist, pre_p);). -- Joseph S. Myers jos...@codesourcery.com