From: Tom Tromey Date: Fri, 18 Apr 2008 00:58:58 +0000 (+0000) Subject: re PR preprocessor/34866 (valgrind error indication in testsuite from errors.c:156... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bf048bea9cacd1879017eed0f1ecb1de12c16dee;p=gcc.git 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 --- diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 0eb632f92f9..0826b628a9b 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,9 @@ +2008-04-17 Tom Tromey + + PR libcpp/34866: + * errors.c (cpp_error): Don't reference a token before the start + of the current run. + 2008-04-16 Tom Tromey * Makefile.in (TAGS_SOURCES): New variable. diff --git a/libcpp/errors.c b/libcpp/errors.c index 97de4900001..0b7c1e0f458 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;