From a8b2a8d55ccf7783b607c4629292af7fc41f6a28 Mon Sep 17 00:00:00 2001
From: bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 30 Sep 2004 01:19:46 +0000
Subject: [PATCH] 	* directives.c (cpp_handle_deferred_pragma):  Save,
 clear and restore 	cb.line_change.  Otherwise do_pragma will call the
 line_change 	call-back with a meaningless line number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88320 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libcpp/ChangeLog    | 6 ++++++
 libcpp/directives.c | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 839b559fad65..86222aa942c5 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-29  Per Bothner  <per@bothner.com>
+
+	* directives.c (cpp_handle_deferred_pragma):  Save, clear and restore
+	cb.line_change.  Otherwise do_pragma will call the line_change
+	call-back with a meaningless line number.
+
 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
 
 	* configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
diff --git a/libcpp/directives.c b/libcpp/directives.c
index 49f95ca33895..b60b7bca8003 100644
--- a/libcpp/directives.c
+++ b/libcpp/directives.c
@@ -1419,10 +1419,13 @@ cpp_handle_deferred_pragma (cpp_reader *pfile, const cpp_string *s)
   cpp_token *saved_cur_token = pfile->cur_token;
   tokenrun *saved_cur_run = pfile->cur_run;
   bool saved_defer_pragmas = CPP_OPTION (pfile, defer_pragmas);
+  void (*saved_line_change) (cpp_reader *, const cpp_token *, int)
+    = pfile->cb.line_change;
 
   pfile->context = XNEW (cpp_context);
   pfile->context->macro = 0;
   pfile->context->prev = 0;
+  pfile->cb.line_change = NULL;
   CPP_OPTION (pfile, defer_pragmas) = false;
 
   run_directive (pfile, T_PRAGMA, s->text, s->len);
@@ -1431,6 +1434,7 @@ cpp_handle_deferred_pragma (cpp_reader *pfile, const cpp_string *s)
   pfile->context = saved_context;
   pfile->cur_token = saved_cur_token;
   pfile->cur_run = saved_cur_run;
+  pfile->cb.line_change = saved_line_change;
   CPP_OPTION (pfile, defer_pragmas) = saved_defer_pragmas;
 }
 
-- 
GitLab