aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog4
-rw-r--r--gcc/c-family/c-common.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 157adc9..07be3bb 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,5 +1,9 @@
2016-08-29 Tom de Vries <tom@codesourcery.com>
+ * c-common.c (build_va_arg): Fix type comparison assert.
+
+2016-08-29 Tom de Vries <tom@codesourcery.com>
+
* c-common.c (build_va_arg): Replace first argument type error
with assert.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 3d4e97b..00f19ff 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -5906,7 +5906,10 @@ build_va_arg (location_t loc, tree expr, tree type)
{
/* Case 2b: va_list is pointer to array elem type. */
gcc_assert (POINTER_TYPE_P (va_type));
- gcc_assert (TREE_TYPE (va_type) == TREE_TYPE (canon_va_type));
+
+ /* Comparison as in std_canonical_va_list_type. */
+ gcc_assert (TYPE_MAIN_VARIANT (TREE_TYPE (va_type))
+ == TYPE_MAIN_VARIANT (TREE_TYPE (canon_va_type)));
/* Don't take the address. We've already got '&ap'. */
;