annotate gcc/testsuite/g++.dg/diagnostic/aka2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* Verify that the "aka" descriptions for typedefs are correctly
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 quoted (PR 62170). */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 /* Exercise %H and %I. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 typedef struct s1 t1;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 typedef struct s2 {int i;} t2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 int foo(t1 *);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 void test_1 () {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 t2 pos;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 foo (&pos); // { dg-error "cannot convert 't2\\*' {aka 's2\\*'} to 't1\\*' {aka 's1\\*'}" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 /* Exercise %T. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 typedef struct s3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 void m3 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 } t3;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 void test_2 (const s3 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 ptr->m3 (); // { dg-error "passing 'const s3' as 'this' argument discards qualifiers" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 void test_3 (const t3 *ptr)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 ptr->m3 (); // { dg-error "passing 'const t3' {aka 'const s3'} as 'this' argument discards qualifiers" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 }