diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9fc3562576cc901b741118ec23c13f1847fc2a0e..c12d8428d9037d074af5a39e61b3f23f5daeb59e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-19  Richard Biener  <rguenther@suse.de>
+
+	* expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
+	for global context.
+
 2013-06-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
 	Revert:
diff --git a/gcc/expr.c b/gcc/expr.c
index c68f489e8de4a1715581f469f4a9416bf3043621..2a7824b62a2f66d39ce3f4206dbb340666d9565d 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -9353,7 +9353,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
       /* Variables inherited from containing functions should have
 	 been lowered by this point.  */
       context = decl_function_context (exp);
-      gcc_assert (!context
+      gcc_assert (SCOPE_FILE_SCOPE_P (context)
 		  || context == current_function_decl
 		  || TREE_STATIC (exp)
 		  || DECL_EXTERNAL (exp)