OK, thanks.
On Thu, Sep 22, 2016 at 10:24 AM, Marek Polacek <pola...@redhat.com> wrote: > Jason reported that make check-c++1z reveals some fallout > because we now reject bool++ in C++1z: > https://gcc.gnu.org/ml/gcc-patches/2016-09/msg01460.html > > I hope this patch fixes all of it. > > Bootstrapped/regtested on x86_64-linux, ok for trunk? > > 2016-09-22 Marek Polacek <pola...@redhat.com> > > * c-c++-common/gomp/atomic-12.c: Skip for C++1z. > * c-c++-common/gomp/atomic-13.c: Likewise. > * c-c++-common/gomp/atomic-14.c: Likewise. > * c-c++-common/pr60439.c: Remove invalid code. > * g++.dg/expr/bitfield4.C: Robustify for C++1z. > * g++.dg/expr/bitfield5.C: Likewise. > * g++.dg/expr/bitfield6.C: Likewise. > * g++.dg/expr/bool1.C: Likewise. > * g++.dg/expr/bool3.C: Likewise. > * g++.dg/expr/lval3.C: Likewise. > * g++.dg/expr/lval4.C: Likewise. > * g++.old-deja/g++.jason/bool5.C: Likewise. > > diff --git gcc/testsuite/c-c++-common/gomp/atomic-12.c > gcc/testsuite/c-c++-common/gomp/atomic-12.c > index e9ca650..07790d9 100644 > --- gcc/testsuite/c-c++-common/gomp/atomic-12.c > +++ gcc/testsuite/c-c++-common/gomp/atomic-12.c > @@ -4,6 +4,7 @@ > /* atomicvar should never be referenced in between the barrier and > following #pragma omp atomic_load. */ > /* { dg-final { scan-tree-dump-not "barrier\[^#\]*atomicvar" "gimple" } } */ > +/* { dg-skip-if "invalid in C++1z" { c++1z } } */ > > #ifdef __cplusplus > bool atomicvar, c; > diff --git gcc/testsuite/c-c++-common/gomp/atomic-13.c > gcc/testsuite/c-c++-common/gomp/atomic-13.c > index 7f4afcf..83c6560 100644 > --- gcc/testsuite/c-c++-common/gomp/atomic-13.c > +++ gcc/testsuite/c-c++-common/gomp/atomic-13.c > @@ -4,5 +4,6 @@ > /* atomicvar should never be referenced in between the barrier and > following #pragma omp atomic_load. */ > /* { dg-final { scan-tree-dump-not "barrier\[^#\]*atomicvar" "gimple" } } */ > +/* { dg-skip-if "invalid in C++1z" { c++1z } } */ > > #include "atomic-12.c" > diff --git gcc/testsuite/c-c++-common/gomp/atomic-14.c > gcc/testsuite/c-c++-common/gomp/atomic-14.c > index 7e23453..f2dd9fc 100644 > --- gcc/testsuite/c-c++-common/gomp/atomic-14.c > +++ gcc/testsuite/c-c++-common/gomp/atomic-14.c > @@ -1,6 +1,7 @@ > /* PR middle-end/45423 */ > /* { dg-do compile } */ > /* { dg-options "-fopenmp -Wno-deprecated" } */ > +/* { dg-skip-if "invalid in C++1z" { c++1z } } */ > > #ifdef __cplusplus > bool *baz (); > diff --git gcc/testsuite/c-c++-common/pr60439.c > gcc/testsuite/c-c++-common/pr60439.c > index 71b397a..dc12d1f 100644 > --- gcc/testsuite/c-c++-common/pr60439.c > +++ gcc/testsuite/c-c++-common/pr60439.c > @@ -131,12 +131,6 @@ f6 (bool b) > case 3: > break; > } > - switch (b++) /* { dg-warning "switch condition has" } */ > - /* { dg-warning "is deprecated" "" { target c++ } 134 } */ > - { > - case 3: > - break; > - } > } > > void > diff --git gcc/testsuite/g++.dg/expr/bitfield4.C > gcc/testsuite/g++.dg/expr/bitfield4.C > index 7fae086..97a1fe9 100644 > --- gcc/testsuite/g++.dg/expr/bitfield4.C > +++ gcc/testsuite/g++.dg/expr/bitfield4.C > @@ -14,6 +14,8 @@ template <> > void f(bool) {} > > int main() { > - f(s.x++); // { dg-warning "deprecated" } > - f(++s.x); // { dg-warning "deprecated" } > + f(s.x++); // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 17 } > + f(++s.x); // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 19 } > } > diff --git gcc/testsuite/g++.dg/expr/bitfield5.C > gcc/testsuite/g++.dg/expr/bitfield5.C > index 0a37f9f..bba35cb 100644 > --- gcc/testsuite/g++.dg/expr/bitfield5.C > +++ gcc/testsuite/g++.dg/expr/bitfield5.C > @@ -8,10 +8,12 @@ struct S { > S s; > > int main() { > - s.x++; // { dg-warning "deprecated" } > + s.x++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 11 } > if (s.x != 1) > return 1; > - ++s.x; // { dg-warning "deprecated" } > + ++s.x; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 15 } > if (s.x != 1) > return 2; > } > diff --git gcc/testsuite/g++.dg/expr/bitfield6.C > gcc/testsuite/g++.dg/expr/bitfield6.C > index 8523866..202c246 100644 > --- gcc/testsuite/g++.dg/expr/bitfield6.C > +++ gcc/testsuite/g++.dg/expr/bitfield6.C > @@ -7,5 +7,6 @@ struct S { > S s; > > void f() { > - ++s.x = false; // { dg-warning "deprecated" } > + ++s.x = false; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 10 } > } > diff --git gcc/testsuite/g++.dg/expr/bool1.C gcc/testsuite/g++.dg/expr/bool1.C > index 503e8b4..4ecc6ac 100644 > --- gcc/testsuite/g++.dg/expr/bool1.C > +++ gcc/testsuite/g++.dg/expr/bool1.C > @@ -10,8 +10,10 @@ int main() > my_bool b = false; > int i; > > - b++; // { dg-warning "deprecated" } > - b++; // { dg-warning "deprecated" } > + b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 13 } > + b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 15 } > i = b; > if (i != 1) > abort (); > diff --git gcc/testsuite/g++.dg/expr/bool3.C gcc/testsuite/g++.dg/expr/bool3.C > index 1866ed4..cfc9da3 100644 > --- gcc/testsuite/g++.dg/expr/bool3.C > +++ gcc/testsuite/g++.dg/expr/bool3.C > @@ -10,8 +10,10 @@ int main() > my_bool b = false; > int i; > > - b++; // { dg-warning "deprecated" } > - b++; // { dg-warning "deprecated" } > + b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 13 } > + b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 15 } > i = b; > if (i != 1) > abort (); > diff --git gcc/testsuite/g++.dg/expr/lval3.C gcc/testsuite/g++.dg/expr/lval3.C > index 8e0aead..4011441 100644 > --- gcc/testsuite/g++.dg/expr/lval3.C > +++ gcc/testsuite/g++.dg/expr/lval3.C > @@ -4,7 +4,5 @@ f() > { > bool i = 0; > i++ = 3; // { dg-error "" } > - // { dg-warning "deprecated" "" { target *-*-* } 6 } > + // { dg-warning "deprecated" "" { target { ! c++1z } } 6 } > } > - > - > diff --git gcc/testsuite/g++.dg/expr/lval4.C gcc/testsuite/g++.dg/expr/lval4.C > index b903ec8..c012dd3 100644 > --- gcc/testsuite/g++.dg/expr/lval4.C > +++ gcc/testsuite/g++.dg/expr/lval4.C > @@ -4,7 +4,6 @@ f() > { > bool i = 0; > ++i = 3; > - // { dg-warning "deprecated" "" { target *-*-* } 6 } > + // { dg-warning "deprecated" "" { target { ! c++1z } } 6 } > + // { dg-error "forbidden" "" { target c++1z } 6 } > } > - > - > diff --git gcc/testsuite/g++.old-deja/g++.jason/bool5.C > gcc/testsuite/g++.old-deja/g++.jason/bool5.C > index 0a16ccb..49126ac 100644 > --- gcc/testsuite/g++.old-deja/g++.jason/bool5.C > +++ gcc/testsuite/g++.old-deja/g++.jason/bool5.C > @@ -2,10 +2,12 @@ > int main () > { > bool b = false; > - int i = b++; // { dg-warning "deprecated" } > + int i = b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 5 } > if (i != false || b != true) > return 1; > - i = b++; // { dg-warning "deprecated" } > + i = b++; // { dg-warning "deprecated" "" { target { ! c++1z } } } > + // { dg-error "forbidden" "" { target c++1z } 9 } > if (i != true || b != true) > return 1; > } > > Marek