This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: g++.old-deja/g++.other/anon7.C


Mark Mitchell wrote:
This test seems to be emitting extra, invalid, errors in the wake of
these patches:

2003-07-22 Per Bothner <pbothner@apple.com>

	* line-map.c (add_line_map):  Handle invalid LEAVE request.
	Fixes PR preprocessor/11361.

2003-07-22 Per Bothner <pbothner@apple.com>

	* diagnostic.c.(diagnostic_report_current_module):  Update to match
	2003-06-05 changes to push_srcloc and pop_srcloc.

Would you mind taking a look to see if you can see what's going on
there?

What's happening is that pushdecl_class_level is calling push_srcloc and pop_srcloc which add the pushed DECL_SOURCE_FILE and _LINE to the #include file stack used for diagnostics. My patch fixes the diagnostics code, so the entire include file stack is shown.


My June 6 change caused part of the include file stack to not get printed in error messages. Before that anon7.C should get spurious error messages, because diagnotic.C was misusing push_srcloc/pop_srcloc. So you edited the test case on June 20 to "Remove spurious error messages" because we were no longer getting them. And now they're back.

So you have to decide: What error messages do you want? If you don't want the "spurious errors" don't use push_srcloc/pop_srcloc. I suggest replacing the calls by:

  location_t save_location = input_location;
  input_location = DECL_SOURCE_LOCATION (f);
  ...
  input_location = save_location;

--
	--Per Bothner
per@bothner.com   pbothner@apple.com  http://per.bothner.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]