1// { dg-do compile }
2// { dg-options "-pedantic -pedantic-errors" }
3typedef int FIC(int) const;
4typedef int FI(int);
5
6FIC f; // { dg-error "qualified" }
7// { dg-error "ignoring" "ignoring" { target *-*-* } 6 }
8struct S {
9  FIC f; // OK
10
11  const FI g; // { dg-error "qualifier" }
12
13  int h(int) const;
14
15};
16FIC S::*pm = &S::f;
17const FI S::*pm2 = &S::f; // { dg-error "qualifier" }
18// { dg-error "cannot convert" "cannot convert" { target *-*-* } 17 }
19const FIC S::*pm3 = &S::f; // { dg-error "qualifier" }
20
21int S::f(int) const
22{
23  return 17;
24}
25
26
27int foo(float) const // { dg-error "qualifier" }
28{
29  return 0;
30}
31
32int bar(float) volatile; // { dg-error "qualifier" }
33