diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 22ffd3aab03c926d2d3f293dd3273a3ac38ad058..60d445505127a2191b11f5bae5a62f7c49e867a1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,10 @@
-2008-12-05 Uros Bizjak <ubizjak@gmail.com>
+2008-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/37716
+	* gimplify.c (gimplify_expr): Allow COND_EXPR if
+	gimplify_ctxp->allow_rhs_cond_expr.
+
+2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
 
 	* config/alpha/alpha.c (alpha_fold_vector_minmax): Create
 	VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 09f130ecc7e5861684a9c371de0efbded705e01e..2fea882811f9481f2e5ab5d90d31985de0b04fec 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -6941,7 +6941,7 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
 		  && code != ASM_EXPR
 		  && code != BIND_EXPR
 		  && code != CATCH_EXPR
-		  && code != COND_EXPR
+		  && (code != COND_EXPR || gimplify_ctxp->allow_rhs_cond_expr)
 		  && code != EH_FILTER_EXPR
 		  && code != GOTO_EXPR
 		  && code != LABEL_EXPR