diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9c4a185afb3e09744979678247752a5788a1f463..3121c996c3541c8dff3f5154d75bc763008a09a8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-07  Martin Jambor  <mjambor@suse.cz>
+
+	* tree-sra.c (find_param_candidates): Allow scalar va_list types.
+
 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
 
 	PR driver/41594
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index e1dd0d777e377ea9c380153c48f7be8cc3102b06..d4adb61ae6a599615e27e85faea9046371f0f1e5 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2991,7 +2991,7 @@ find_param_candidates (void)
 
       if (TREE_THIS_VOLATILE (parm)
 	  || TREE_ADDRESSABLE (parm)
-	  || is_va_list_type (type))
+	  || (!is_gimple_reg_type (type) && is_va_list_type (type)))
 	continue;
 
       if (is_unused_scalar_param (parm))