1 // DR 342, PR c++/48582
2 // { dg-do compile { target c++11 } }
3 
4 struct A;
f()5 template < void * = nullptr > void f() { }
g()6 template < void (A::*)() = nullptr > void g() { }
h()7 template < int A::* = nullptr > void h() { }
8 
main()9 int main()
10 {
11   // { dg-final { scan-assembler "_Z1fILPv0EEvv" } }
12   f();
13   f<nullptr>();
14 
15   // { dg-final { scan-assembler "_Z1gILM1AFvvE0EEvv" } }
16   g();
17   g<nullptr>();
18 
19   // { dg-final { scan-assembler "_Z1fILPv0EEvv" } }
20   h();
21   h<nullptr>();
22 
23   constexpr void * ptr = nullptr;
24   f<ptr>();
25 }
26