mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-16 13:01:21 +08:00
re PR preprocessor/34602 (Internal error with invalid #line directive)
libcpp PR preprocessor/34602. * directives.c (do_line): Don't try to spell EOF token. (do_linemarker): Add comment. gcc/testsuite PR preprocessor/34602: * gcc.dg/cpp/pr34602.c: New file. From-SVN: r131304
This commit is contained in:
parent
cac67c0835
commit
33ae48375f
@ -1,3 +1,8 @@
|
||||
2008-01-03 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR preprocessor/34602:
|
||||
* gcc.dg/cpp/pr34602.c: New file.
|
||||
|
||||
2008-01-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/29484
|
||||
|
6
gcc/testsuite/gcc.dg/cpp/pr34602.c
Normal file
6
gcc/testsuite/gcc.dg/cpp/pr34602.c
Normal file
@ -0,0 +1,6 @@
|
||||
/* PR preprocessor/34602 - no internal error trying to spell EOF. */
|
||||
/* { dg-do preprocess } */
|
||||
|
||||
/* { dg-error "unexpected end" "" { target *-*-* } 6 } */
|
||||
|
||||
#line
|
@ -1,3 +1,9 @@
|
||||
2008-01-03 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR preprocessor/34602.
|
||||
* directives.c (do_line): Don't try to spell EOF token.
|
||||
(do_linemarker): Add comment.
|
||||
|
||||
2007-12-11 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* charset.c (convert_using_iconv): Close out any shift states,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* CPP Library. (Directive handling.)
|
||||
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
2007 Free Software Foundation, Inc.
|
||||
2007, 2008 Free Software Foundation, Inc.
|
||||
Contributed by Per Bothner, 1994-95.
|
||||
Based on CCCP program by Paul Rubin, June 1986
|
||||
Adapted to ANSI C, Richard Stallman, Jan 1987
|
||||
@ -864,9 +864,12 @@ do_line (cpp_reader *pfile)
|
||||
|| strtoul_for_line (token->val.str.text, token->val.str.len,
|
||||
&new_lineno))
|
||||
{
|
||||
cpp_error (pfile, CPP_DL_ERROR,
|
||||
"\"%s\" after #line is not a positive integer",
|
||||
cpp_token_as_text (pfile, token));
|
||||
if (token->type == CPP_EOF)
|
||||
cpp_error (pfile, CPP_DL_ERROR, "unexpected end of file after #line");
|
||||
else
|
||||
cpp_error (pfile, CPP_DL_ERROR,
|
||||
"\"%s\" after #line is not a positive integer",
|
||||
cpp_token_as_text (pfile, token));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -920,6 +923,8 @@ do_linemarker (cpp_reader *pfile)
|
||||
|| strtoul_for_line (token->val.str.text, token->val.str.len,
|
||||
&new_lineno))
|
||||
{
|
||||
/* Unlike #line, there does not seem to be a way to get an EOF
|
||||
here. So, it should be safe to always spell the token. */
|
||||
cpp_error (pfile, CPP_DL_ERROR,
|
||||
"\"%s\" after # is not a positive integer",
|
||||
cpp_token_as_text (pfile, token));
|
||||
|
Loading…
x
Reference in New Issue
Block a user