blob: 85ac9fbfd796f4acac124a2440ee01f66bbab012 [file] [log] [blame]
// PR c++/91889 - follow-up fix for DR 2352.
// { dg-do compile { target c++11 } }
int i;
void f1 (int *);
void f1 (const int *const &);
void f2 (int *);
void f2 (const int *&);
void f3 (const int *);
void f3 (int *const &);
void f4 (int *&);
void f4 (int *const &);
void f5 (const int *&);
void f5 (int *const &);
void f6 (int *const &);
void f6 (const int *const &);
void f7 (int **const);
void f7 (const int *const *const &);
void f8 (const int *const *);
void f8 (const int *const *const &);
void f9 (int *const *);
void f9 (const int *const *const &);
void
g (int *p, const int *pc, const int **q)
{
f1 (p);
f1 (pc);
f2 (p);
f2 (pc);
f3 (p);
f3 (pc);
f4 (p);
f5 (p);
f5 (pc);
f6 (p);
f6 (pc);
f7 (q);
/* [over.ics.rank]
--S1 and S2 differ only in their qualification conversion and yield
similar types T1 and T2 (_conv.qual_), respectively, and the cv-
qualification signature of type T1 is a proper subset of the cv-
qualification signature of type T2 */
f8 (q);
f9 (q);
}