diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a58b9f1cd36ed2d7acf1d23cb49b6a01cc6333fa..153046d5d04505b5afc912bef62c8cb816fffb69 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+	* cfgexpand.c (gimple_expand_cfg): Discard the source location
+	only for builtins that are not overridden.
+
 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
 
 	* gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 65a13de8a3d85bda22f4fad8a0d180f57f853f40..31d346e6cb30be6721d30dde3de144c3d827077d 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -2438,7 +2438,7 @@ gimple_expand_cfg (void)
   rtl_profile_for_bb (ENTRY_BLOCK_PTR);
 
   insn_locators_alloc ();
-  if (!DECL_BUILT_IN (current_function_decl))
+  if (!DECL_IS_BUILTIN (current_function_decl))
     {
       /* Eventually, all FEs should explicitly set function_start_locus.  */
       if (cfun->function_start_locus == UNKNOWN_LOCATION)