diff options
author | Joseph Myers <joseph@codesourcery.com> | 2009-04-18 16:28:40 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2009-04-18 16:28:40 +0100 |
commit | a5cb563b79b71ef5dbf3c3c0aca014c785f79927 (patch) | |
tree | 77102eabd471055daec6714f7c09468dba337166 /gcc | |
parent | 2586ba4bdaaa47413b9c03ff164d926fe52f8dc1 (diff) | |
download | gcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.zip gcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.tar.gz gcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.tar.bz2 |
re PR preprocessor/39647 (Syntax checks in #line not quite right)
libcpp:
PR preprocessor/39647
* directives.c (check_eol): Add parameter expand.
(do_undef, parse_include, do_line, do_linemarker, do_ident,
do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
do_else, do_endif, do_assert, do_unassert): All callers changed.
Pass true from do_line, false elsewhere.
gcc/testsuite:
* gcc.dg/cpp/line7.c: New test.
From-SVN: r146316
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/line7.c | 19 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 846725e..58ea487 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-04-18 Joseph Myers <joseph@codesourcery.com> + + PR preprocessor/39647 + * gcc.dg/cpp/line7.c: New test. + 2009-04-18 Richard Guenther <rguenther@suse.de> PR middle-end/39804 diff --git a/gcc/testsuite/gcc.dg/cpp/line7.c b/gcc/testsuite/gcc.dg/cpp/line7.c new file mode 100644 index 0000000..754727e --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/line7.c @@ -0,0 +1,19 @@ +/* Test #line syntax, including macro expansion and empty macros. PR + 39647. */ + +/* { dg-do preprocess } */ +/* { dg-options "-std=c99 -pedantic-errors" } */ + +#define EMPTY_OBJ +#define EMPTY_FUNC() + +#define A 12 "line7.c" +#line A + +#line EMPTY_OBJ /* { dg-error "unexpected end of file" } */ +#line X /* { dg-error "is not a positive integer" } */ +#line 16 16 /* { dg-error "is not a valid filename" } */ + +#line 18 "line7.c" EMPTY_OBJ +#line 19 "line7.c" EMPTY_FUNC() +#line 20 "line7.c" foo /* { dg-error "extra tokens at end" } */ |