From d6efd7d667d07cbf0dddba3961dc7681f3f644ea Mon Sep 17 00:00:00 2001 From: Dorit Naishlos Date: Thu, 17 Mar 2005 21:08:06 +0000 Subject: re PR tree-optimization/20474 (ICE while compiling openmotif-2.2.3 with -ftree-vectorize) PR tree-optimization/20474 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the size_type of the relevant pointer. Check for COMPLETE_TYPE_P. From-SVN: r96632 --- gcc/tree-vect-analyze.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gcc/tree-vect-analyze.c') diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c index 0ee6f0c..dd9342a 100644 --- a/gcc/tree-vect-analyze.c +++ b/gcc/tree-vect-analyze.c @@ -1401,8 +1401,7 @@ vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read, return NULL; } - reftype = TREE_TYPE (init); - if (!POINTER_TYPE_P (reftype)) + if (!POINTER_TYPE_P (TREE_TYPE (init))) { if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, LOOP_LOC (loop_vinfo))) @@ -1412,6 +1411,14 @@ vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read, *ptr_step = fold_convert (ssizetype, step); innertype = TREE_TYPE (reftype); + if (!COMPLETE_TYPE_P (innertype)) + { + if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, + LOOP_LOC (loop_vinfo))) + fprintf (vect_dump, "not vectorized: pointer to incomplete type."); + return NULL; + } + /* Check that STEP is a multiple of type size. */ if (!integer_zerop (size_binop (TRUNC_MOD_EXPR, *ptr_step, fold_convert (ssizetype, TYPE_SIZE_UNIT (innertype))))) -- cgit v1.1