From 34cedad50c75e63d0898db1f117ec236bd4e3891 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 29 Aug 2016 16:42:16 +0000 Subject: [PATCH] Fix assert in build_va_arg, case 2b 2016-08-29 Tom de Vries * c-common.c (build_va_arg): Fix type comparison assert. From-SVN: r239829 --- gcc/c-family/ChangeLog | 4 ++++ gcc/c-family/c-common.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 157adc91e65..07be3bbd5b0 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,7 @@ +2016-08-29 Tom de Vries + + * c-common.c (build_va_arg): Fix type comparison assert. + 2016-08-29 Tom de Vries * c-common.c (build_va_arg): Replace first argument type error diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 3d4e97b8f8f..00f19ff24ef 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'. */ ; -- 2.30.2