diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7e130c9198ebbaa41dbe075fcb830c301e42460a..a1666ee1e1c4430e8f6f8a17f4459284b6e502ff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
+
+	PR tree-opt/18544
+	* tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
+
 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
 	* config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 7793b0b6b0104496a3e28c8071a858acd09df694..61c22e82594452b24a57efd992d3b6dd9311e2e9 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -5057,10 +5057,15 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
 		case ARRAY_REF:
 		  dr = analyze_array (stmt, TREE_OPERAND (symbl, 0), 
 				      DR_IS_READ(dr));
-		  STMT_VINFO_MEMTAG (stmt_info) = 
-		     vect_get_base_and_bit_offset (dr, DR_BASE_NAME (dr), NULL_TREE,
-						   loop_vinfo, &offset, 
-						   &base_aligned_p);
+		  tag = vect_get_base_and_bit_offset (dr, DR_BASE_NAME (dr), 
+			   NULL_TREE, loop_vinfo, &offset, &base_aligned_p);
+		  if (!tag)
+		    {
+		      if (vect_debug_stats (loop) || vect_debug_details (loop))
+			fprintf (dump_file, "not vectorized: no memtag for ref.");
+		      return false;
+		    }
+		  STMT_VINFO_MEMTAG (stmt_info) = tag; 
 		  break;
 		  
 		case VAR_DECL: