diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-05-12 13:33:11 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-05-12 13:40:29 -0700 |
commit | 2a0225e47868fbfceaecaa5e2de96c1c5a2251ea (patch) | |
tree | a6162228bf200d85b53bfdc040fc95623a967794 /gcc | |
parent | 27c3d986c4e704336c17155c558911beff1e1385 (diff) | |
download | gcc-2a0225e47868fbfceaecaa5e2de96c1c5a2251ea.zip gcc-2a0225e47868fbfceaecaa5e2de96c1c5a2251ea.tar.gz gcc-2a0225e47868fbfceaecaa5e2de96c1c5a2251ea.tar.bz2 |
preprocessor: EOF location is at end of file [PR95013]
My recent C++ parser change to pay attention to EOF location uncovered
a separate bug. The preprocesor's EOF logic would set the EOF
location to be the beginning of the last line of text in the file --
not the 'line' after that, which contains no characters. Mostly.
This fixes things so that when we attempt to read the last line of the
main file, we don't pop the buffer until the tokenizer has a chance to
create an EOF token with the correct location information. It is then
responsible for popping the buffer. As it happens, raw string literal
tokenizing contained a bug -- it would increment the line number
prematurely, because it cached buffer->cur in a local variable, but
checked buffer->cur before updating it to figure out if it was at end
of file. We fix up that too.
The EOF token intentionally doesn't have a column number -- it's not a
position on a line, it's a non-existant line.
The testsuite churn is just correcting the EOF location diagnostics.
libcpp/
PR preprocessor/95013
* lex.c (lex_raw_string): Process line notes before incrementing.
Correct incrementing condition. Adjust for new
_cpp_get_fresh_line EOF behaviour.
(_cpp_get_fresh_line): Do not pop buffer at EOF, increment line
instead.
(_cpp_lex_direct): Adjust for new _cpp_get_fresh_line behaviour.
(cpp_directive_only_process): Assert we got a fresh line.
* traditional.c (_cpp_read_logical_line_trad): Adjust for new
_cpp_get_fresh_line behaviour.
gcc/testsuite/
* c-c++-common/goacc/pr79428-1.c: Adjust EOF diagnostic location.
* c-c++-common/gomp/pr79428-2.c: Likewise.
* g++.dg/cpp0x/decltype63.C: Likewise.
* g++.dg/cpp0x/gen-attrs-64.C: Likewise.
* g++.dg/cpp0x/pr68726.C: Likewise.
* g++.dg/cpp0x/pr78341.C: Likewise.
* g++.dg/cpp1y/pr65202.C: Likewise.
* g++.dg/cpp1y/pr65340.C: Likewise.
* g++.dg/cpp1y/pr68578.C: Likewise.
* g++.dg/cpp1z/class-deduction44.C: Likewise.
* g++.dg/diagnostic/unclosed-extern-c.C: Likewise.
* g++.dg/diagnostic/unclosed-function.C: Likewise.
* g++.dg/diagnostic/unclosed-namespace.C: Likewise.
* g++.dg/diagnostic/unclosed-struct.C: Likewise.
* g++.dg/ext/pr84598.C: Likewise.
* g++.dg/other/switch4.C: Likewise.
* g++.dg/parse/attr4.C: Likewise.
* g++.dg/parse/cond4.C: Likewise.
* g++.dg/parse/crash10.C: Likewise.
* g++.dg/parse/crash18.C: Likewise.
* g++.dg/parse/crash27.C: Likewise.
* g++.dg/parse/crash34.C: Likewise.
* g++.dg/parse/crash35.C: Likewise.
* g++.dg/parse/crash52.C: Likewise.
* g++.dg/parse/crash59.C: Likewise.
* g++.dg/parse/crash61.C: Likewise.
* g++.dg/parse/crash67.C: Likewise.
* g++.dg/parse/error14.C: Likewise.
* g++.dg/parse/error56.C: Likewise.
* g++.dg/parse/invalid1.C: Likewise.
* g++.dg/parse/parameter-declaration-1.C: Likewise.
* g++.dg/parse/parser-pr28152-2.C: Likewise.
* g++.dg/parse/parser-pr28152.C: Likewise.
* g++.dg/parse/pr68722.C: Likewise.
* g++.dg/pr46852.C: Likewise.
* g++.dg/pr46868.C: Likewise.
* g++.dg/template/crash115.C: Likewise.
* g++.dg/template/crash43.C: Likewise.
* g++.dg/template/crash90.C: Likewise.
* g++.dg/template/error-recovery1.C: Likewise.
* g++.dg/template/error57.C: Likewise.
* g++.old-deja/g++.other/crash31.C: Likewise.
* gcc.dg/empty-source-2.c: Likewise.
* gcc.dg/empty-source-3.c: Likewise.
* gcc.dg/noncompile/pr30552-3.c: Likewise.
* gcc.dg/noncompile/pr35447-1.c: Likewise.
* gcc.dg/pr20245-1.c: Likewise.
* gcc.dg/pr28419.c: Likewise.
* gcc.dg/rtl/truncated-rtl-file.c: Likewise.
* gcc.dg/unclosed-init.c: Likewise.
* obj-c++.dg/property/property-neg-6.mm: Likewise.
* obj-c++.dg/syntax-error-10.mm: Likewise.
* obj-c++.dg/syntax-error-8.mm: Likewise.
* obj-c++.dg/syntax-error-9.mm: Likewise.
Diffstat (limited to 'gcc')
55 files changed, 128 insertions, 53 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 24a4276..b84acda 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,61 @@ +2020-05-12 Nathan Sidwell <nathan@acm.org> + + PR preprocessor/95013 + * c-c++-common/goacc/pr79428-1.c: Adjust EOF diagnostic location. + * c-c++-common/gomp/pr79428-2.c: Likewise. + * g++.dg/cpp0x/decltype63.C: Likewise. + * g++.dg/cpp0x/gen-attrs-64.C: Likewise. + * g++.dg/cpp0x/pr68726.C: Likewise. + * g++.dg/cpp0x/pr78341.C: Likewise. + * g++.dg/cpp1y/pr65202.C: Likewise. + * g++.dg/cpp1y/pr65340.C: Likewise. + * g++.dg/cpp1y/pr68578.C: Likewise. + * g++.dg/cpp1z/class-deduction44.C: Likewise. + * g++.dg/diagnostic/unclosed-extern-c.C: Likewise. + * g++.dg/diagnostic/unclosed-function.C: Likewise. + * g++.dg/diagnostic/unclosed-namespace.C: Likewise. + * g++.dg/diagnostic/unclosed-struct.C: Likewise. + * g++.dg/ext/pr84598.C: Likewise. + * g++.dg/other/switch4.C: Likewise. + * g++.dg/parse/attr4.C: Likewise. + * g++.dg/parse/cond4.C: Likewise. + * g++.dg/parse/crash10.C: Likewise. + * g++.dg/parse/crash18.C: Likewise. + * g++.dg/parse/crash27.C: Likewise. + * g++.dg/parse/crash34.C: Likewise. + * g++.dg/parse/crash35.C: Likewise. + * g++.dg/parse/crash52.C: Likewise. + * g++.dg/parse/crash59.C: Likewise. + * g++.dg/parse/crash61.C: Likewise. + * g++.dg/parse/crash67.C: Likewise. + * g++.dg/parse/error14.C: Likewise. + * g++.dg/parse/error56.C: Likewise. + * g++.dg/parse/invalid1.C: Likewise. + * g++.dg/parse/parameter-declaration-1.C: Likewise. + * g++.dg/parse/parser-pr28152-2.C: Likewise. + * g++.dg/parse/parser-pr28152.C: Likewise. + * g++.dg/parse/pr68722.C: Likewise. + * g++.dg/pr46852.C: Likewise. + * g++.dg/pr46868.C: Likewise. + * g++.dg/template/crash115.C: Likewise. + * g++.dg/template/crash43.C: Likewise. + * g++.dg/template/crash90.C: Likewise. + * g++.dg/template/error-recovery1.C: Likewise. + * g++.dg/template/error57.C: Likewise. + * g++.old-deja/g++.other/crash31.C: Likewise. + * gcc.dg/empty-source-2.c: Likewise. + * gcc.dg/empty-source-3.c: Likewise. + * gcc.dg/noncompile/pr30552-3.c: Likewise. + * gcc.dg/noncompile/pr35447-1.c: Likewise. + * gcc.dg/pr20245-1.c: Likewise. + * gcc.dg/pr28419.c: Likewise. + * gcc.dg/rtl/truncated-rtl-file.c: Likewise. + * gcc.dg/unclosed-init.c: Likewise. + * obj-c++.dg/property/property-neg-6.mm: Likewise. + * obj-c++.dg/syntax-error-10.mm: Likewise. + * obj-c++.dg/syntax-error-8.mm: Likewise. + * obj-c++.dg/syntax-error-9.mm: Likewise. + 2020-05-12 Marek Polacek <polacek@redhat.com> PR c++/95074 diff --git a/gcc/testsuite/c-c++-common/goacc/pr79428-1.c b/gcc/testsuite/c-c++-common/goacc/pr79428-1.c index cf4aeaf..68dea5b 100644 --- a/gcc/testsuite/c-c++-common/goacc/pr79428-1.c +++ b/gcc/testsuite/c-c++-common/goacc/pr79428-1.c @@ -3,4 +3,6 @@ void foo () { -#pragma acc routine /* { dg-error ".#pragma acc routine. must be at file scope|expected" } */ +#pragma acc routine /* { dg-error ".#pragma acc routine. must be at file scope" } */ +// { dg-error "expected" "end" { target c } .-1 } +// { dg-error "-:expected" "end" { target c++ } .+1 } diff --git a/gcc/testsuite/c-c++-common/gomp/pr79428-2.c b/gcc/testsuite/c-c++-common/gomp/pr79428-2.c index a26c462..0914963 100644 --- a/gcc/testsuite/c-c++-common/gomp/pr79428-2.c +++ b/gcc/testsuite/c-c++-common/gomp/pr79428-2.c @@ -4,4 +4,6 @@ void foo () { #pragma omp sections -#pragma omp section /* { dg-error "'#pragma omp section' may only be used in '#pragma omp sections' construct|not allowed|expected" } */ +#pragma omp section /* { dg-error "'#pragma omp section' may only be used in '#pragma omp sections' construct|not allowed" } */ +// { dg-error "expected" "end" { target c } .-1 } +// { dg-error "-:expected" "end" { target c++ } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype63.C b/gcc/testsuite/g++.dg/cpp0x/decltype63.C index 7dded0a..b588bc3 100644 --- a/gcc/testsuite/g++.dg/cpp0x/decltype63.C +++ b/gcc/testsuite/g++.dg/cpp0x/decltype63.C @@ -5,4 +5,4 @@ template<typename T> class C{ T t; decltype(t)::a:: // { dg-error "expected" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C index 7fb7c33..822b64e 100644 --- a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C +++ b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C @@ -2,4 +2,4 @@ // { dg-do compile { target c++11 } } namespace alignas() N {} // { dg-error "expected" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp0x/pr68726.C b/gcc/testsuite/g++.dg/cpp0x/pr68726.C index 262a102..636a20c 100644 --- a/gcc/testsuite/g++.dg/cpp0x/pr68726.C +++ b/gcc/testsuite/g++.dg/cpp0x/pr68726.C @@ -5,4 +5,4 @@ template <typename> struct A { template <typename... _Args> using __has_construct typename __construct_helper<_Args...>::type; // { dg-error "expected" } } struct : A<int> { // { dg-error "expected" } - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp0x/pr78341.C b/gcc/testsuite/g++.dg/cpp0x/pr78341.C index dbf0059..8573f9f 100644 --- a/gcc/testsuite/g++.dg/cpp0x/pr78341.C +++ b/gcc/testsuite/g++.dg/cpp0x/pr78341.C @@ -2,4 +2,4 @@ // { dg-do compile { target c++11 } } alignas (alignas double // { dg-error "expected" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr65202.C b/gcc/testsuite/g++.dg/cpp1y/pr65202.C index 0d217c7..a76f8da 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr65202.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr65202.C @@ -25,4 +25,4 @@ int main() foo<ns::bar> f; adl::swap(f, f) // { dg-error "expected ';'" } } -// { dg-error "-:expected '.'" "expected end of namespace" } +// { dg-error "-:expected '.'" "expected end of namespace" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr65340.C b/gcc/testsuite/g++.dg/cpp1y/pr65340.C index 848eff9..d3e03f7 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr65340.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr65340.C @@ -16,4 +16,5 @@ struct traverse { }; } auto &traverse = constant < functors :: traverse > ; -operator()()->decltype(traverse(0, 0)) // { dg-error "no match|expected" } +operator()()->decltype(traverse(0, 0))// { dg-error "no match" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp1y/pr68578.C b/gcc/testsuite/g++.dg/cpp1y/pr68578.C index 3fe0723..18edd83 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr68578.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr68578.C @@ -1,3 +1,4 @@ // { dg-do compile { target c++14 } } -template <typename> struct bar foo; template <> struct foo<>: // { dg-error "class template|expected" } +template <typename> struct bar foo; template <> struct foo<>: // { dg-error "class template" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/cpp1z/class-deduction44.C b/gcc/testsuite/g++.dg/cpp1z/class-deduction44.C index af91c89..95caa99 100644 --- a/gcc/testsuite/g++.dg/cpp1z/class-deduction44.C +++ b/gcc/testsuite/g++.dg/cpp1z/class-deduction44.C @@ -3,4 +3,4 @@ template <typename> struct A; template <typename> struct B : A < B { , // { dg-error "" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C b/gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C index 4a2519b..f905e4f 100644 --- a/gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C +++ b/gcc/testsuite/g++.dg/diagnostic/unclosed-extern-c.C @@ -10,4 +10,4 @@ void bar (void); void test (void); // { message "12: to match this '.'" "" { target *-*-* } open_extern_c } -/* { dg-error "-:expected '.' at end of input" } */ +/* { dg-error "-:expected '.' at end of input" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/g++.dg/diagnostic/unclosed-function.C b/gcc/testsuite/g++.dg/diagnostic/unclosed-function.C index c3a0bc6..4d841d5 100644 --- a/gcc/testsuite/g++.dg/diagnostic/unclosed-function.C +++ b/gcc/testsuite/g++.dg/diagnostic/unclosed-function.C @@ -1,4 +1,4 @@ void test (void) { /* { dg-message "1: to match this '.'" } */ int filler; - /* { dg-error "-:expected '.' at end of input" } */ + /* { dg-error "-:expected '.' at end of input" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C b/gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C index 959354f..0887bc1 100644 --- a/gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C +++ b/gcc/testsuite/g++.dg/diagnostic/unclosed-namespace.C @@ -1,3 +1,3 @@ namespace unclosed { /* { dg-message "20: to match this '.'" } */ int filler; -/* { dg-error "-:expected '.' at end of input" } */ +/* { dg-error "-:expected '.' at end of input" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C b/gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C index cf8f1e4..e68e599 100644 --- a/gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C +++ b/gcc/testsuite/g++.dg/diagnostic/unclosed-struct.C @@ -1,3 +1,3 @@ struct unclosed { /* { dg-message "17: to match this '.'" } */ int dummy; - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/ext/pr84598.C b/gcc/testsuite/g++.dg/ext/pr84598.C index 4b2cc07..8b78e0f 100644 --- a/gcc/testsuite/g++.dg/ext/pr84598.C +++ b/gcc/testsuite/g++.dg/ext/pr84598.C @@ -1,4 +1,4 @@ // { dg-options "-fpermissive -w" } template<int b> __attribute__ a([] { class c, __attribute__(vector_size(operator+()))) d; // { dg-error "" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/other/switch4.C b/gcc/testsuite/g++.dg/other/switch4.C index 6320346..5d0047b 100644 --- a/gcc/testsuite/g++.dg/other/switch4.C +++ b/gcc/testsuite/g++.dg/other/switch4.C @@ -4,4 +4,4 @@ class a b; // { dg-error "aggregate" } void c() { switch () // { dg-error "expected" } case b // { dg-error "expected" } - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/attr4.C b/gcc/testsuite/g++.dg/parse/attr4.C index 7713fc9..160c33e 100644 --- a/gcc/testsuite/g++.dg/parse/attr4.C +++ b/gcc/testsuite/g++.dg/parse/attr4.C @@ -1,3 +1,4 @@ // PR c++/93684 - ICE-on-invalid with broken attribute. -[[a:: // { dg-error "expected|expected" } +[[a:: // { dg-error "expected" } + // { dg-error "-:expected" "" { target c++14 } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/cond4.C b/gcc/testsuite/g++.dg/parse/cond4.C index ae210e0..893caea 100644 --- a/gcc/testsuite/g++.dg/parse/cond4.C +++ b/gcc/testsuite/g++.dg/parse/cond4.C @@ -4,3 +4,4 @@ void foo() { if (struct A{}// { dg-error "types may not be defined|expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash10.C b/gcc/testsuite/g++.dg/parse/crash10.C index 0a1a703..7e2dec6 100644 --- a/gcc/testsuite/g++.dg/parse/crash10.C +++ b/gcc/testsuite/g++.dg/parse/crash10.C @@ -9,4 +9,4 @@ class { typename:: ; // { dg-error "expected" } - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash18.C b/gcc/testsuite/g++.dg/parse/crash18.C index bf68be1..596d310 100644 --- a/gcc/testsuite/g++.dg/parse/crash18.C +++ b/gcc/testsuite/g++.dg/parse/crash18.C @@ -4,4 +4,4 @@ // PR 18095: ICE // Origin: Volker Reichelt <reichelt@gcc.gnu.org> -struct A // { dg-error "-:expected" } +struct A // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash27.C b/gcc/testsuite/g++.dg/parse/crash27.C index 2179287..08977b2 100644 --- a/gcc/testsuite/g++.dg/parse/crash27.C +++ b/gcc/testsuite/g++.dg/parse/crash27.C @@ -1,4 +1,5 @@ // Bug: 23225 void Dispatcher() - (__builtin_offsetof (ArgsType, largeMsgLen)) // { dg-error "initialize|end of input" } + (__builtin_offsetof (ArgsType, largeMsgLen)) // { dg-error "initialize" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash34.C b/gcc/testsuite/g++.dg/parse/crash34.C index 181e584..86f79cc 100644 --- a/gcc/testsuite/g++.dg/parse/crash34.C +++ b/gcc/testsuite/g++.dg/parse/crash34.C @@ -3,4 +3,5 @@ void foo() { - namespace N { /* { dg-error "is not allowed|at end of input" } */ + namespace N { /* { dg-error "is not allowed" } */ +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash35.C b/gcc/testsuite/g++.dg/parse/crash35.C index 3cae709..05f0a63 100644 --- a/gcc/testsuite/g++.dg/parse/crash35.C +++ b/gcc/testsuite/g++.dg/parse/crash35.C @@ -4,4 +4,4 @@ struct a {}; class foo : public a, a // { dg-error "duplicate base" } -{ // { dg-error "-:at end of input" } +{ // { dg-error "-:at end of input" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash52.C b/gcc/testsuite/g++.dg/parse/crash52.C index bc7f03c..5dfb69c 100644 --- a/gcc/testsuite/g++.dg/parse/crash52.C +++ b/gcc/testsuite/g++.dg/parse/crash52.C @@ -1,3 +1,4 @@ // PR c++/39053 -void foo() = // { dg-error "initialized|expected" } +void foo() = // { dg-error "initialized" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash59.C b/gcc/testsuite/g++.dg/parse/crash59.C index 5994751..7526b08 100644 --- a/gcc/testsuite/g++.dg/parse/crash59.C +++ b/gcc/testsuite/g++.dg/parse/crash59.C @@ -1,4 +1,4 @@ // PR c++/53003 struct A{ void a{} return b // { dg-error "16:function definition" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash61.C b/gcc/testsuite/g++.dg/parse/crash61.C index e41e151..713fe9f 100644 --- a/gcc/testsuite/g++.dg/parse/crash61.C +++ b/gcc/testsuite/g++.dg/parse/crash61.C @@ -5,4 +5,4 @@ struct pair { constexpr pair (const) : }; // { dg-error "" } template <0> make_pair () {} // { dg-error "" } pair prefix[] = { 0, make_pair } // { dg-error "" } -// { dg-error "-:expected" "" { target c++11 } } +// { dg-error "-:expected" "" { target c++11 } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/crash67.C b/gcc/testsuite/g++.dg/parse/crash67.C index 8ae6e32..2a5bb3f 100644 --- a/gcc/testsuite/g++.dg/parse/crash67.C +++ b/gcc/testsuite/g++.dg/parse/crash67.C @@ -4,4 +4,4 @@ class x0; template <x1> x2() { // { dg-error "declared|type" } x0 x3 = x3. // { dg-error "incomplete type" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/error14.C b/gcc/testsuite/g++.dg/parse/error14.C index 15ebe24..fd654180 100644 --- a/gcc/testsuite/g++.dg/parse/error14.C +++ b/gcc/testsuite/g++.dg/parse/error14.C @@ -20,4 +20,4 @@ struct X // } }; // { dg-error "1:expected primary-expression before '.' token" "primary" } -// { dg-error "-:expected" "at end of input" } +// { dg-error "-:expected" "at end of input" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/error56.C b/gcc/testsuite/g++.dg/parse/error56.C index aa0b5d2..11d3197 100644 --- a/gcc/testsuite/g++.dg/parse/error56.C +++ b/gcc/testsuite/g++.dg/parse/error56.C @@ -4,4 +4,4 @@ template <0> int __copy_streambufs_eof; // { dg-error "" } class { // { dg-error "forbids" "" { target *-*-* } .+1 } friend __copy_streambufs_eof <> ( // { dg-error "" } - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/invalid1.C b/gcc/testsuite/g++.dg/parse/invalid1.C index 72bc720..cb4ef1a 100644 --- a/gcc/testsuite/g++.dg/parse/invalid1.C +++ b/gcc/testsuite/g++.dg/parse/invalid1.C @@ -3,4 +3,4 @@ // { dg-options "-w" } int foo ( foo += *[ // { dg-error "expected" } -// { dg-error "-:invalid|expected" } +// { dg-error "-:invalid|expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C index 98e82c8..c6106d5 100644 --- a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C +++ b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C @@ -4,4 +4,4 @@ struct { a(void = 0; a(0), a(0) // { dg-error "" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C b/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C index bf32924..28048bd 100644 --- a/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C +++ b/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C @@ -8,4 +8,4 @@ main (void) z = __complex__ (1.90000007326203904e+19, 0.0); // { dg-error "expected primary-expression before '__complex__'" "primary-expression" } z = __complex__ (1.0e+0, 0.0) / z; // { dg-error "expected primary-expression before '__complex__'" "primaty-expression" } - // { dg-error "-:at end of input" "end" } + // { dg-error "-:at end of input" "end" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/parser-pr28152.C b/gcc/testsuite/g++.dg/parse/parser-pr28152.C index 048cb50..3461734 100644 --- a/gcc/testsuite/g++.dg/parse/parser-pr28152.C +++ b/gcc/testsuite/g++.dg/parse/parser-pr28152.C @@ -8,4 +8,4 @@ main (void) z = _Complex (1.90000007326203904e+19, 0.0); // { dg-error "expected primary-expression before '_Complex'" "primary-expression" } z = _Complex (1.0e+0, 0.0) / z; // { dg-error "expected primary-expression before '_Complex'" "primary-expression" } - // { dg-error "-:at end of input" "end" } + // { dg-error "-:at end of input" "end" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/parse/pr68722.C b/gcc/testsuite/g++.dg/parse/pr68722.C index 2901cbf..26f6d11 100644 --- a/gcc/testsuite/g++.dg/parse/pr68722.C +++ b/gcc/testsuite/g++.dg/parse/pr68722.C @@ -6,4 +6,4 @@ class A { A _M_ios_locale ios_base(ios_base &) template <_Traits> class basic_ios { // { dg-error "" } basic_ios basic_ios = operator= // { dg-error "" } // { dg-prune-output "file ends in default argument" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/pr46852.C b/gcc/testsuite/g++.dg/pr46852.C index 9be1b92..5cfeaf9 100644 --- a/gcc/testsuite/g++.dg/pr46852.C +++ b/gcc/testsuite/g++.dg/pr46852.C @@ -5,4 +5,4 @@ template < class { // { dg-error "" } -// { dg-error "-:" } +// { dg-error "-:" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/pr46868.C b/gcc/testsuite/g++.dg/pr46868.C index dec79aa..25b8c96 100644 --- a/gcc/testsuite/g++.dg/pr46868.C +++ b/gcc/testsuite/g++.dg/pr46868.C @@ -2,4 +2,4 @@ // { dg-do compile } template < int > struct S { S < // { dg-error "" } - // { dg-error "-:expected" } + // { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/template/crash115.C b/gcc/testsuite/g++.dg/template/crash115.C index 84b2847..c1a7235 100644 --- a/gcc/testsuite/g++.dg/template/crash115.C +++ b/gcc/testsuite/g++.dg/template/crash115.C @@ -1,4 +1,4 @@ // PR c++/56534 template < struct template rebind < > // { dg-error "expected|must follow" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/template/crash43.C b/gcc/testsuite/g++.dg/template/crash43.C index a5161d8..3647a17 100644 --- a/gcc/testsuite/g++.dg/template/crash43.C +++ b/gcc/testsuite/g++.dg/template/crash43.C @@ -5,4 +5,4 @@ extern "C" { struct ___is_pod { enum { __value = (sizeof(__gnu_internal::__test_type<_Tp>(0)))}; // { dg-error "expected|declared" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/template/crash90.C b/gcc/testsuite/g++.dg/template/crash90.C index 4cfc408..e2a58e3 100644 --- a/gcc/testsuite/g++.dg/template/crash90.C +++ b/gcc/testsuite/g++.dg/template/crash90.C @@ -4,4 +4,6 @@ template < unsigned > struct A ; template < typename > struct B ; -template < typename T , A < B < T > {}// { dg-error "initializer|parse error|type|expected" } +template < typename T , A < B < T > {} // { dg-error "parse error|non-type|initializer" } + +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/template/error-recovery1.C b/gcc/testsuite/g++.dg/template/error-recovery1.C index 05f3980..6f9ce6d 100644 --- a/gcc/testsuite/g++.dg/template/error-recovery1.C +++ b/gcc/testsuite/g++.dg/template/error-recovery1.C @@ -7,4 +7,4 @@ template < typename > struct T template < bool > struct T < S > // { dg-error "" } { void f () { // { dg-error "expected" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.dg/template/error57.C b/gcc/testsuite/g++.dg/template/error57.C index f3d87c5..121fbb1 100644 --- a/gcc/testsuite/g++.dg/template/error57.C +++ b/gcc/testsuite/g++.dg/template/error57.C @@ -2,4 +2,4 @@ template <int()> struct a; template <int(b)> a < b // { dg-error "int" } -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash31.C b/gcc/testsuite/g++.old-deja/g++.other/crash31.C index 734c3f4..610dfe1 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash31.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash31.C @@ -7,4 +7,4 @@ struct foo { foo(); }; -// { dg-error "-:expected" } +// { dg-error "-:expected" "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/gcc.dg/empty-source-2.c b/gcc/testsuite/gcc.dg/empty-source-2.c index e0180ec..67906f9 100644 --- a/gcc/testsuite/gcc.dg/empty-source-2.c +++ b/gcc/testsuite/gcc.dg/empty-source-2.c @@ -3,4 +3,4 @@ /* { dg-do compile } */ /* { dg-options "-pedantic" } */ -/* { dg-warning "-:ISO C forbids an empty translation unit" "empty" } */ +/* { dg-warning "-:ISO C forbids an empty translation unit" "empty" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/empty-source-3.c b/gcc/testsuite/gcc.dg/empty-source-3.c index f8c58b3..f287715 100644 --- a/gcc/testsuite/gcc.dg/empty-source-3.c +++ b/gcc/testsuite/gcc.dg/empty-source-3.c @@ -4,4 +4,4 @@ /* { dg-do compile } */ /* { dg-options "-pedantic-errors" } */ -/* { dg-error "-:ISO C forbids an empty translation unit" "empty" } */ +/* { dg-error "-:ISO C forbids an empty translation unit" "empty" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/noncompile/pr30552-3.c b/gcc/testsuite/gcc.dg/noncompile/pr30552-3.c index 7b48e763..23cc7e6 100644 --- a/gcc/testsuite/gcc.dg/noncompile/pr30552-3.c +++ b/gcc/testsuite/gcc.dg/noncompile/pr30552-3.c @@ -12,4 +12,5 @@ int main() int g() int a[( {int b} )]; /* { dg-error "braced-group within expression allowed only inside a function|declaration for parameter" } */ return 0; /* { dg-error "expected declaration specifiers before" } */ -} /* { dg-error "expected declaration specifiers before|end of input|expected declaration or statement at end of input" } */ +} /* { dg-error "expected declaration" } */ +/* { dg-error "-:expected" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/noncompile/pr35447-1.c b/gcc/testsuite/gcc.dg/noncompile/pr35447-1.c index b9bbb73..499b959 100644 --- a/gcc/testsuite/gcc.dg/noncompile/pr35447-1.c +++ b/gcc/testsuite/gcc.dg/noncompile/pr35447-1.c @@ -4,4 +4,5 @@ void foo() { ({ int i().; }); /* { dg-error "expected" } */ -} /* { dg-error "-:expected" } */ +} /* { dg-error "expected declaration" } +/* { dg-error "-:expected" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/pr20245-1.c b/gcc/testsuite/gcc.dg/pr20245-1.c index b5767d8..ac88074 100644 --- a/gcc/testsuite/gcc.dg/pr20245-1.c +++ b/gcc/testsuite/gcc.dg/pr20245-1.c @@ -2,4 +2,5 @@ /* { dg-do compile } */ /* { dg-options "" } */ -void foo() x; /* { dg-error "-:expected" } */ +void foo() x; /* { dg-error "expected" } */ +/* { dg-error "-:expected" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/pr28419.c b/gcc/testsuite/gcc.dg/pr28419.c index 9974864..d418a16 100644 --- a/gcc/testsuite/gcc.dg/pr28419.c +++ b/gcc/testsuite/gcc.dg/pr28419.c @@ -1,4 +1,4 @@ /* { dg-do compile } */ void foo() const char* p = __FUNCTION__; /* { dg-error "" } */ -/* { dg-error "-:expected" "" } */ +/* { dg-error "-:expected" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c b/gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c index fffb4d7..28d898b 100644 --- a/gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c +++ b/gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c @@ -1,2 +1,2 @@ void __RTL test (void) -{ /* { dg-error "-:no closing brace" } */ +{ /* { dg-error "-:no closing brace" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/gcc.dg/unclosed-init.c b/gcc/testsuite/gcc.dg/unclosed-init.c index 3deb88e..16c42c4 100644 --- a/gcc/testsuite/gcc.dg/unclosed-init.c +++ b/gcc/testsuite/gcc.dg/unclosed-init.c @@ -1,3 +1,3 @@ int unclosed[] = { /* { dg-message "18: to match this '.'" } */ 42 - /* { dg-error "-: expected '.' at end of input" } */ + /* { dg-error "-: expected '.' at end of input" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm index c4a22eb..1db6f0b 100644 --- a/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm +++ b/gcc/testsuite/obj-c++.dg/property/property-neg-6.mm @@ -6,4 +6,4 @@ int iVar; } @property int FooBar /* { dg-error "expected ';' at end of input" } */ - /* { dg-error "expected '@end' at end of input" "" { target *-*-* } .-1 } */ + /* { dg-error "-:expected '@end' at end of input" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-10.mm b/gcc/testsuite/obj-c++.dg/syntax-error-10.mm index e45abcc..6fcf96f 100644 --- a/gcc/testsuite/obj-c++.dg/syntax-error-10.mm +++ b/gcc/testsuite/obj-c++.dg/syntax-error-10.mm @@ -1 +1,2 @@ -@interface /* { dg-error "expected identifier" } */ +@interface +/* { dg-error "-:expected identifier" "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-8.mm b/gcc/testsuite/obj-c++.dg/syntax-error-8.mm index 731ffda..f7cfe0e 100644 --- a/gcc/testsuite/obj-c++.dg/syntax-error-8.mm +++ b/gcc/testsuite/obj-c++.dg/syntax-error-8.mm @@ -1 +1 @@ -@interface A /* { dg-error "expected ..end." } */
\ No newline at end of file +@interface A /* { dg-error "-:expected ..end." "" { target *-*-* } .+1 } */ diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm index 352dd34..ae104e5 100644 --- a/gcc/testsuite/obj-c++.dg/syntax-error-9.mm +++ b/gcc/testsuite/obj-c++.dg/syntax-error-9.mm @@ -1,3 +1,3 @@ @implementation SaturnDoc /* { dg-warning "cannot find interface declaration" } */ - read: (void*)aStream ggg /* { dg-error "expected .:. at end of input" } */ -/* { dg-error "expected ..end. at end of input" "" { target *-*-* } .-1 } */
\ No newline at end of file +/* { dg-error "-:expected ..end. at end of input" "" { target *-*-* } .+1 } */ |