// DR 342, PR c++/48582 // { dg-do compile { target c++11 } } struct A; template < void * = nullptr > void f() { } template < void (A::*)() = nullptr > void g() { } template < int A::* = nullptr > void h() { } int main() { // { dg-final { scan-assembler "_Z1fILPv0EEvv" } } f(); f(); // { dg-final { scan-assembler "_Z1gILM1AFvvE0EEvv" } } g(); g(); // { dg-final { scan-assembler "_Z1fILPv0EEvv" } } h(); h(); constexpr void * ptr = nullptr; f(); }