2010-10-20  Yao Qi  <yao@codesourcery.com>

	Merge from Sourcery G++ to fix LP:660021
	2010-10-18  Paul Brook  <paul@codesourcery.com>

	* tree-vect-stmts.c (supportable_widening_operation): Check if wide
	vector type exists.

=== modified file 'gcc/tree-vect-stmts.c'
Index: gcc-4.5/gcc/tree-vect-stmts.c
===================================================================
--- gcc-4.5.orig/gcc/tree-vect-stmts.c
+++ gcc-4.5/gcc/tree-vect-stmts.c
@@ -4867,6 +4867,11 @@ supportable_widening_operation (enum tre
   tree wide_vectype = get_vectype_for_scalar_type (type);
   enum tree_code c1, c2;
 
+  /* Check we have a valid vector type for the result.  */
+  if (!wide_vectype)
+    return false;
+
+
   /* The result of a vectorized widening operation usually requires two vectors
      (because the widened results do not fit int one vector). The generated
      vector results would normally be expected to be generated in the same
