1 // RUN: c-index-test core -print-source-symbols -- %s | FileCheck %s 2 3 // Functions taking function pointer parameters with different signatures should result in unique USRs. 4 5 typedef void (*_VoidToVoidPtr_)(); 6 typedef void (*_IntToVoidPtr_)( int ); 7 typedef _VoidToVoidPtr_ (*IntTo_VoidToVoidPtr_Ptr)( int ); 8 typedef _IntToVoidPtr_ (*VoidTo_IntToVoidPtr_Ptr)(); 9 10 void Func( IntTo_VoidToVoidPtr_Ptr ); 11 // CHECK: {{[0-9]+}}:6 | function/C | Func | c:@F@Func#*F*Fv()(#I)# | 12 void Func( VoidTo_IntToVoidPtr_Ptr ); 13 // CHECK: {{[0-9]+}}:6 | function/C | Func | c:@F@Func#*F*Fv(#I)()# | 14 15 void Func( void (* (*)(int, int))(int, int) ); 16 // CHECK: {{[0-9]+}}:6 | function/C | Func | c:@F@Func#*F*Fv(#I#I)(#I#I)# | 17 void Func( void (* (*)(int, int, int))(int) ); 18 // CHECK: {{[0-9]+}}:6 | function/C | Func | c:@F@Func#*F*Fv(#I)(#I#I#I)# | 19