1// Origin: PR 44641 2// { dg-do compile } 3// { dg-options "-g -O0 -dA" } 4 5template <class A> struct MisplacedDbg; 6template<class T> struct MisplacedDbg<T*>; 7struct Full; 8template<> struct MisplacedDbg<Full>; 9 10struct Arg; 11typedef MisplacedDbg<Arg> Typedef1; 12typedef MisplacedDbg<Arg*> Typedef2; 13typedef MisplacedDbg<Full> Typedef3; 14 15template<typename T> struct Base { 16 int i; 17 virtual ~Base() { 18 } 19}; 20 21template <> 22struct MisplacedDbg<Full> // { dg-function-on-line {_ZN12MisplacedDbgI4FullEC[12]Ev} } 23 // { dg-function-on-line {_ZN12MisplacedDbgI4FullED0Ev} { target *-*-* } 22 } 24 25 : public Base<int> { 26}; 27 28template <class T> 29struct MisplacedDbg<T*> // { dg-function-on-line {_ZN12MisplacedDbgIP3ArgEC[12]Ev} } 30 // { dg-function-on-line {_ZN12MisplacedDbgIP3ArgED0Ev} { target *-*-* } 29 } 31 : public Base<int> { 32}; 33 34template <class A> 35struct MisplacedDbg // { dg-function-on-line {_ZN12MisplacedDbgI3ArgEC[12]Ev} } 36 // { dg-function-on-line {_ZN12MisplacedDbgI3ArgED0Ev} { target *-*-* } 35 } 37 : public Base<int> { 38}; 39 40static MisplacedDbg<Arg> static_var1; 41static MisplacedDbg<Arg*> static_var2; 42static MisplacedDbg<Full> static_var3; 43