aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/builtins.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 23f3b4d..06d2c23 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-11 Tom de Vries <tom@codesourcery.com>
+
+ PR middle-end/77558
+ * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
+ special-casing.
+
2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
* tree.h (build_complex_type): Add second parameter with default.
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 6c68198..43a9db0 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.