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 | |