Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c	(revision 188926)
+++ gcc/tree-inline.c	(working copy)
@@ -3950,10 +3950,17 @@
      actual inline expansion of the body, and a label for the return
      statements within the function to jump to.  The type of the
      statement expression is the return type of the function call.  */
-  id->block = make_node (BLOCK);
-  BLOCK_ABSTRACT_ORIGIN (id->block) = fn;
-  BLOCK_SOURCE_LOCATION (id->block) = input_location;
-  prepend_lexical_block (gimple_block (stmt), id->block);
+  if (gimple_has_location (stmt))
+    {
+      id->block = make_node (BLOCK);
+      BLOCK_ABSTRACT_ORIGIN (id->block) = fn;
+      BLOCK_SOURCE_LOCATION (id->block) = input_location;
+      prepend_lexical_block (gimple_block (stmt), id->block);
+    }
+  else
+    {
+      id->block = gimple_block (stmt);
+    }

   /* Local declarations will be replaced by their equivalents in this
      map.  */
