re PR target/67405 (ICE on invalid use of struct on x86_64-linux-gnu)

gcc/

	PR target/67405
	* tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.

gcc/testsuite/

	PR target/67405
	* g++.dg/pr67405.C: New test.

From-SVN: r227373
This commit is contained in:
Ilya Enkovich 2015-09-01 14:38:42 +00:00 committed by Ilya Enkovich
parent d4c6109400
commit 53f303165e
4 changed files with 24 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
PR target/67405
* tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
2015-09-01 Aldy Hernandez <aldyh@redhat.com>
* trans-mem.c: Add contributed-by.

View file

@ -1,3 +1,8 @@
2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
PR target/67405
* g++.dg/pr67405.C: New test.
2015-09-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.dg/vect/no-scevccp-outer-11.c: Don't xfail scan-tree-dump-times.

View file

@ -0,0 +1,11 @@
// { dg-do compile }
struct S
{
S f; // { dg-error "incomplete type" }
};
void
fn1 (S p1)
{
}

View file

@ -1667,8 +1667,9 @@ chkp_find_bound_slots_1 (const_tree type, bitmap have_bound,
for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
if (TREE_CODE (field) == FIELD_DECL)
{
HOST_WIDE_INT field_offs
= TREE_INT_CST_LOW (DECL_FIELD_BIT_OFFSET (field));
HOST_WIDE_INT field_offs = 0;
if (DECL_FIELD_BIT_OFFSET (field))
field_offs += TREE_INT_CST_LOW (DECL_FIELD_BIT_OFFSET (field));
if (DECL_FIELD_OFFSET (field))
field_offs += TREE_INT_CST_LOW (DECL_FIELD_OFFSET (field)) * 8;
chkp_find_bound_slots_1 (TREE_TYPE (field), have_bound,