re PR c/71685 (Segmentation fault in gcc when compiling the attached file.)

PR c/71685
	* c-typeck.c (c_build_qualified_type): Don't clear
	C_TYPE_INCOMPLETE_VARS for the main variant.

	* gcc.dg/pr71685.c: New test.

From-SVN: r237830
This commit is contained in:
Jakub Jelinek 2016-06-29 00:30:04 +02:00
parent 4378d117ec
commit 152ef73195
4 changed files with 21 additions and 3 deletions

View File

@ -1,4 +1,10 @@
2016-06-28 Martin Sebor <msebor@redhat.com>
2016-06-29 Jakub Jelinek <jakub@redhat.com>
PR c/71685
* c-typeck.c (c_build_qualified_type): Don't clear
C_TYPE_INCOMPLETE_VARS for the main variant.
2016-06-28 Martin Sebor <msebor@redhat.com>
PR c/71552
* c-typeck.c (output_init_element): Diagnose incompatible types

View File

@ -13676,7 +13676,8 @@ c_build_qualified_type (tree type, int type_quals, tree orig_qual_type,
: build_qualified_type (type, type_quals));
/* A variant type does not inherit the list of incomplete vars from the
type main variant. */
if (RECORD_OR_UNION_TYPE_P (var_type))
if (RECORD_OR_UNION_TYPE_P (var_type)
&& TYPE_MAIN_VARIANT (var_type) != var_type)
C_TYPE_INCOMPLETE_VARS (var_type) = 0;
return var_type;
}

View File

@ -1,4 +1,9 @@
2016-06-28 Martin Sebor <msebor@redhat.com>
2016-06-29 Jakub Jelinek <jakub@redhat.com>
PR c/71685
* gcc.dg/pr71685.c: New test.
2016-06-28 Martin Sebor <msebor@redhat.com>
PR c/71552
* gcc.dg/init-bad-9.c: New test.

View File

@ -0,0 +1,6 @@
/* PR c/71685 */
/* { dg-do compile } */
/* { dg-options "-std=gnu11" } */
extern struct S v, s;
struct S { int t; int p[]; } v = { 4, 0 };