diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23f3b4dca80c..06d2c23583ee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-10-11 Tom de Vries + + PR middle-end/77558 + * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE + special-casing. + 2016-10-11 Eric Botcazou * tree.h (build_complex_type): Add second parameter with default. diff --git a/gcc/builtins.c b/gcc/builtins.c index 6c68198fcc5c..43a9db02f2ec 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -4090,10 +4090,8 @@ std_canonical_va_list_type (tree type) wtype = va_list_type_node; htype = type; - /* Treat structure va_list types. */ - if (TREE_CODE (wtype) == RECORD_TYPE && POINTER_TYPE_P (htype)) - htype = TREE_TYPE (htype); - else if (TREE_CODE (wtype) == ARRAY_TYPE) + + if (TREE_CODE (wtype) == ARRAY_TYPE) { /* If va_list is an array type, the argument may have decayed to a pointer type, e.g. by being passed to another function.