From bf048bea9cacd1879017eed0f1ecb1de12c16dee Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 18 Apr 2008 00:58:58 +0000 Subject: 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 --- libcpp/errors.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libcpp/errors.c') 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; -- cgit v1.1