aboutsummaryrefslogtreecommitdiff
path: root/libcpp/errors.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-04-18 00:58:58 +0000
committerTom Tromey <tromey@gcc.gnu.org>2008-04-18 00:58:58 +0000
commitbf048bea9cacd1879017eed0f1ecb1de12c16dee (patch)
tree5c35a8e5b6fb34788c3fd69310012a174a5fcceb /libcpp/errors.c
parent723424c861e1cfc400b5cbe2e89f90d345b7b9b4 (diff)
downloadgcc-bf048bea9cacd1879017eed0f1ecb1de12c16dee.zip
gcc-bf048bea9cacd1879017eed0f1ecb1de12c16dee.tar.gz
gcc-bf048bea9cacd1879017eed0f1ecb1de12c16dee.tar.bz2
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
Diffstat (limited to 'libcpp/errors.c')
-rw-r--r--libcpp/errors.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libcpp/errors.c b/libcpp/errors.c
index 97de490..0b7c1e0 100644
--- a/libcpp/errors.c
+++ b/libcpp/errors.c
@@ -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;