diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7a5a719acda..8c072e2c6c4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-12-29 Jakub Jelinek + + PR preprocessor/29612 + * gcc.dg/cpp/pr29612-1.c: New test. + * gcc.dg/cpp/pr29612-2.c: New test. + 2006-12-28 Paul Thomas PR fortran/30034 diff --git a/gcc/testsuite/gcc.dg/cpp/pr29612-1.c b/gcc/testsuite/gcc.dg/cpp/pr29612-1.c new file mode 100644 index 00000000000..f840c3823a6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/pr29612-1.c @@ -0,0 +1,15 @@ +/* PR preprocessor/29612 */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +# 6 "pr29612-1.c" + +int foo (void) { return 'ab'; } /* { dg-warning "multi-character" } */ + +# 1 "foo.h" 1 3 + +int bar (void) { return 'ab'; } /* No warning in system header. */ + +# 14 "pr29612-1.c" 2 + +int baz (void) { return 'ab'; } /* { dg-warning "multi-character" } */ diff --git a/gcc/testsuite/gcc.dg/cpp/pr29612-2.c b/gcc/testsuite/gcc.dg/cpp/pr29612-2.c new file mode 100644 index 00000000000..813eb77af13 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/pr29612-2.c @@ -0,0 +1,18 @@ +/* PR preprocessor/29612 */ +/* { dg-do preprocess } */ +/* { dg-options "-Wtraditional -fno-show-column" } */ + +# 6 "pr29612-2.c" + +#if 1U /* { dg-warning "traditional C rejects" "numeric constant suffix" } */ +#endif + +# 1 "foo.h" 1 3 + +#if 1U +#endif /* No warning in system header. */ + +# 16 "pr29612-2.c" 2 + +#if 1U /* { dg-warning "traditional C rejects" "numeric constant suffix" } */ +#endif diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 1b1f833b8d7..de8eb92095c 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,9 @@ +2006-12-29 Jakub Jelinek + + PR preprocessor/29612 + * directives.c (do_linemarker): Set pfile->buffer->sysp always, not + only when new_sysp is non-zero. + 2006-12-28 Tom Tromey PR preprocessor/30001: diff --git a/libcpp/directives.c b/libcpp/directives.c index e08698d76b7..7fb142e48c7 100644 --- a/libcpp/directives.c +++ b/libcpp/directives.c @@ -942,8 +942,8 @@ do_linemarker (cpp_reader *pfile) flag = read_flag (pfile, flag); if (flag == 4) new_sysp = 2; - pfile->buffer->sysp = new_sysp; } + pfile->buffer->sysp = new_sysp; check_eol (pfile); }