diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dd271350d86101ae0ab489ceacc14a21271402df..3539a0699520e752c051d5a70fe81e20a5e2bef0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2003-07-06  Michael Chastain  <mec@shout.net>
+
+	PR debug/10055
+	* lex.c (cxx_init): Call push_srcloc and pop_srcloc rather than
+	assigning to input_filename directly.
+
 2003-07-06  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* call.c: Fix comment formatting.
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index a3f287878d2628671d6cb18a5bfc1a44c6291cd2..7d63e2c99da57c9225b7705642637095a6ff216c 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -392,7 +392,10 @@ cxx_init (void)
 
   INIT_STATEMENT_CODES (stmt_codes);
 
-  input_filename = "<internal>";
+  /* We cannot just assign to input_filename because it has already
+     been initialized and will be used later as an N_BINCL for stabs+
+     debugging.  */
+  push_srcloc ("<internal>", 0);
 
   init_reswords ();
   init_tree ();
@@ -429,12 +432,16 @@ cxx_init (void)
   interface_unknown = 1;
 
   if (c_common_init () == false)
-    return false;
+    {
+      pop_srcloc();
+      return false;
+    }
 
   init_cp_pragma ();
 
   init_repo (main_input_filename);
 
+  pop_srcloc();
   return true;
 }