diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/warn')
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wenum-compare.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/inline3.C | 20 |
3 files changed, 23 insertions, 3 deletions
diff --git a/gcc/testsuite/g++.dg/warn/Wenum-compare.C b/gcc/testsuite/g++.dg/warn/Wenum-compare.C index f60080039fb..af7c483a238 100644 --- a/gcc/testsuite/g++.dg/warn/Wenum-compare.C +++ b/gcc/testsuite/g++.dg/warn/Wenum-compare.C @@ -6,5 +6,5 @@ enum E2 { b }; int foo (E1 e1, E2 e2) { - return e1 == e2; /* { dg-warning "comparison between" } */ + return e1 == e2; /* { dg-warning "13:comparison between" } */ } diff --git a/gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C b/gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C index a4aa6960897..1e031f9d732 100644 --- a/gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C +++ b/gcc/testsuite/g++.dg/warn/Wpointer-arith-1.C @@ -4,10 +4,10 @@ int main() { void *pv = 0; - pv++; // { dg-warning "forbids incrementing a pointer" } + pv++; // { dg-warning "3:ISO C\\+\\+ forbids incrementing a pointer" } typedef void (*pft) (); pft pf = 0; - pf++; // { dg-warning "forbids incrementing a pointer" } + pf++; // { dg-warning "3:ISO C\\+\\+ forbids incrementing a pointer" } } diff --git a/gcc/testsuite/g++.dg/warn/inline3.C b/gcc/testsuite/g++.dg/warn/inline3.C new file mode 100644 index 00000000000..0d4dc8ff268 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/inline3.C @@ -0,0 +1,20 @@ +struct S { + inline virtual void foo () = 0; // { dg-bogus "used but never defined" } +#if __cplusplus > 201703L + constexpr virtual void bar () = 0; // { dg-bogus "used but never defined" "" { target c++2a } } +#else + inline virtual void bar () = 0; // { dg-bogus "used but never defined" "" { target c++17_down } } +#endif + S () {} +}; +struct T : public S { + inline virtual void foo () {} +#if __cplusplus > 201703L + constexpr virtual void bar () {} +#else + inline virtual void bar () {} +#endif + T () {} +}; +T t; +void foo (S *s) { s->foo (); s->bar (); } |