re PR preprocessor/34866 (valgrind error indication in testsuite from errors.c:156:cpp_error with gcc.dg/cpp/Wmissingdirs.c)

PR libcpp/34866:
	* errors.c (cpp_error): Don't reference a token before the start
	of the current run.

From-SVN: r134421
This commit is contained in:
Tom Tromey 2008-04-18 00:58:58 +00:00 committed by Tom Tromey
parent 723424c861
commit bf048bea9c
2 changed files with 16 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2008-04-17 Tom Tromey <tromey@redhat.com>
PR libcpp/34866:
* errors.c (cpp_error): Don't reference a token before the start
of the current run.
2008-04-16 Tom Tromey <tromey@redhat.com>
* Makefile.in (TAGS_SOURCES): New variable.

View file

@ -1,6 +1,6 @@
/* Default error handlers for CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
2001, 2002, 2004 Free Software Foundation, Inc.
2001, 2002, 2004, 2008 Free Software Foundation, Inc.
Written by Per Bothner, 1994.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
@ -151,6 +151,15 @@ cpp_error (cpp_reader * pfile, int level, const char *msgid, ...)
else
src_loc = pfile->line_table->highest_line;
}
/* We don't want to refer to a token before the beginning of the
current run -- that is invalid. */
else if (pfile->cur_token == pfile->cur_run->base)
{
if (pfile->cur_run->prev != NULL)
src_loc = pfile->cur_run->prev->limit->src_loc;
else
src_loc = 0;
}
else
{
src_loc = pfile->cur_token[-1].src_loc;