annotate gcc/testsuite/g++.dg/warn/Wredundant-tags-3.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* PR c++/93801 - False -Wmismatched-tags upon redundant typename
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 { dg-do compile }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 { dg-options "-Wall -Wredundant-tags" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5 namespace N
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 class C { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 enum E { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 struct S { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 union U { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 template <int> class TC { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 template <int> struct TS { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 template <int> union TU { };
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 N::C c1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 typename N::C c2; // { dg-bogus "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 class N::C c3; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 N::E e1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 typename N::E e2; // { dg-bogus "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23 enum N::E e3; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 N::S s1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26 typename N::S s2; // { dg-bogus "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 struct N::S s3; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 N::U u1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 typename N::U u2; // { dg-bogus "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 // { dg-bogus "'class' tag used in naming 'union N::U" "pr93809" { xfail *-*-*} .-1 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32 union N::U u3; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 typedef N::TC<0> TC0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 typedef typename N::TC<0> TC0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
37 typedef class N::TC<0> TC0; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
38
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
39 typedef N::TS<0> TS0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
40 typedef typename N::TS<0> TS0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
41 typedef struct N::TS<0> TS0; // { dg-warning "-Wredundant-tags" }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
42
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
43 typedef N::TS<0> TS0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
44 typedef typename N::TS<0> TS0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
45 typedef struct N::TS<0> TS0; // { dg-warning "-Wredundant-tags" }