re PR c/80468 (ICE on invalid AVX512 code with -m32)

PR c/80468
	* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
	enabled, set specs->type to integer_type_node.

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

From-SVN: r247052
This commit is contained in:
Jakub Jelinek 2017-04-21 10:51:53 +02:00 committed by Jakub Jelinek
parent 25c28f47f8
commit 666f7903e0
4 changed files with 27 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2017-04-21 Jakub Jelinek <jakub@redhat.com>
PR c/80468
* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
enabled, set specs->type to integer_type_node.
2017-04-03 Jonathan Wakely <jwakely@redhat.com>
* c-array-notation.c: Fix typo in comment.

View File

@ -10929,9 +10929,12 @@ finish_declspecs (struct c_declspecs *specs)
case cts_int_n:
gcc_assert (!specs->long_p && !specs->short_p && !specs->long_long_p);
gcc_assert (!(specs->signed_p && specs->unsigned_p));
specs->type = (specs->unsigned_p
? int_n_trees[specs->int_n_idx].unsigned_type
: int_n_trees[specs->int_n_idx].signed_type);
if (! int_n_enabled_p[specs->int_n_idx])
specs->type = integer_type_node;
else
specs->type = (specs->unsigned_p
? int_n_trees[specs->int_n_idx].unsigned_type
: int_n_trees[specs->int_n_idx].signed_type);
if (specs->complex_p)
{
pedwarn (specs->locations[cdw_complex], OPT_Wpedantic,

View File

@ -1,3 +1,8 @@
2017-04-21 Jakub Jelinek <jakub@redhat.com>
PR c/80468
* gcc.dg/pr80468.c: New test.
2017-04-21 Martin Liska <mliska@suse.cz>
PR tree-optimization/66278

View File

@ -0,0 +1,10 @@
/* PR c/80468 */
/* { dg-do compile { target { ! int128 } } } */
/* { dg-options "" } */
void
foo (void)
{
__attribute__ ((__vector_size__ (4 * sizeof (unsigned)))) __int128 b; /* { dg-error "is not supported on this target" } */
0 != b;
}