comparison 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
comparison
equal deleted inserted replaced
145:1830386684a0 152:2b5abeee2509
1 /* PR c++/93801 - False -Wmismatched-tags upon redundant typename
2 { dg-do compile }
3 { dg-options "-Wall -Wredundant-tags" } */
4
5 namespace N
6 {
7 class C { };
8 enum E { };
9 struct S { };
10 union U { };
11
12 template <int> class TC { };
13 template <int> struct TS { };
14 template <int> union TU { };
15 }
16
17 N::C c1;
18 typename N::C c2; // { dg-bogus "-Wredundant-tags" }
19 class N::C c3; // { dg-warning "-Wredundant-tags" }
20
21 N::E e1;
22 typename N::E e2; // { dg-bogus "-Wredundant-tags" }
23 enum N::E e3; // { dg-warning "-Wredundant-tags" }
24
25 N::S s1;
26 typename N::S s2; // { dg-bogus "-Wredundant-tags" }
27 struct N::S s3; // { dg-warning "-Wredundant-tags" }
28
29 N::U u1;
30 typename N::U u2; // { dg-bogus "-Wredundant-tags" }
31 // { dg-bogus "'class' tag used in naming 'union N::U" "pr93809" { xfail *-*-*} .-1 }
32 union N::U u3; // { dg-warning "-Wredundant-tags" }
33
34
35 typedef N::TC<0> TC0;
36 typedef typename N::TC<0> TC0;
37 typedef class N::TC<0> TC0; // { dg-warning "-Wredundant-tags" }
38
39 typedef N::TS<0> TS0;
40 typedef typename N::TS<0> TS0;
41 typedef struct N::TS<0> TS0; // { dg-warning "-Wredundant-tags" }
42
43 typedef N::TS<0> TS0;
44 typedef typename N::TS<0> TS0;
45 typedef struct N::TS<0> TS0; // { dg-warning "-Wredundant-tags" }