+--- a/gcc/c/c-parser.c	2015-04-20 18:55:33.000000000 +0200
++++ b/gcc/c/c-parser.c	2015-05-23 11:32:41.664037866 +0200
+@@ -13069,12 +13069,9 @@
+ 		      }
+ 		    else
+ 		      {
+-			/* Copy lastprivate (decl) clause to OMP_FOR_CLAUSES,
+-			   change it to shared (decl) in
+-			   OMP_PARALLEL_CLAUSES.  */
+-			tree l = build_omp_clause (OMP_CLAUSE_LOCATION (*c),
+-						   OMP_CLAUSE_LASTPRIVATE);
+-			OMP_CLAUSE_DECL (l) = OMP_CLAUSE_DECL (*c);
++			/* Move lastprivate (decl) clause to OMP_FOR_CLAUSES.  */
++			tree l = *c;
++			*c = OMP_CLAUSE_CHAIN (*c);
+ 			if (code == OMP_SIMD)
+ 			  {
+ 			    OMP_CLAUSE_CHAIN (l)
+@@ -13086,7 +13083,6 @@
+ 			    OMP_CLAUSE_CHAIN (l) = clauses;
+ 			    clauses = l;
+ 			  }
+-			OMP_CLAUSE_SET_CODE (*c, OMP_CLAUSE_SHARED);
+ 		      }
+ 		  }
+ 	    }
+@@ -13771,6 +13767,7 @@
+ 	  TREE_TYPE (ret) = void_type_node;
+ 	  OMP_TEAMS_CLAUSES (ret) = clauses;
+ 	  OMP_TEAMS_BODY (ret) = block;
++	  OMP_TEAMS_COMBINED (ret) = 1;
+ 	  return add_stmt (ret);
+ 	}
+     }
 --- a/gcc/calls.c	2015-04-07 23:02:12.000000000 +0200
-+++ b/gcc/calls.c	2015-05-01 10:22:52.720493257 +0200
++++ b/gcc/calls.c	2015-05-23 11:18:33.952634193 +0200
 @@ -2099,6 +2099,26 @@
  					   (XEXP (args[i].value, 0), size)))
  		*sibcall_failure = 1;

 			 (const_int 4) (const_int 6)])))
 	  (sign_extend:V4DI
--- a/gcc/cp/constexpr.c	2015-04-12 21:10:58.000000000 +0200
+++ b/gcc/cp/constexpr.c	2015-05-01 10:22:53.005498467 +0200
@@ -1355,7 +1355,14 @@
 		     fun = DECL_CHAIN (fun))
 		  if (DECL_SAVED_TREE (fun))

 
 /* Set up curr_operand_mode.  */
--- a/gcc/lra-eliminations.c	2015-02-04 21:02:21.000000000 +0100
+++ b/gcc/lra-eliminations.c	2015-05-23 11:18:33.965634942 +0200
@@ -318,7 +318,9 @@
    substitution if UPDATE_P, or the full offset if FULL_P, or
    otherwise zero.  If FULL_P, we also use the SP offsets for
