summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/ptrmem8.C
blob: d0473f5cc16a0a68413a8b25be179ff93db428e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// { dg-do compile }
// Origin: <marco dot franzen at bigfoot dot com> 
// PR c++/10126: Handle ptmf default conversions while matching a template 
//  argument

struct B 
{
  int I () const;
  int I ();
};

struct D : B {};

template <int (D::*fun)() const> int Get(); // { dg-message "note" }

int main () 
{
  Get<&B::I>();   // { dg-error "not a valid template argument" "not valid" }
  // { dg-error "no match" "no match" { target *-*-* } 18 }
  // { dg-message "note" "note" { target *-*-* } 18 }
  Get<&D::I>();   // { dg-error "not a valid template argument" "not valid" }
  // { dg-error "no match" "no match" { target *-*-* } 21 }
  // { dg-message "note" "note" { target *-*-* } 21 }
}