I'm trying to link a symbol's file with mangled generated ones from the header. (matching ROM located functions to the RAM ones.)
In the .sym I have a function with "PFvv" parameter, normally demangled to -> VOID (fn*)(VOID).
The compiler is instead producing the following output as parameter: PFYvv
Result: the linker doesn't link.
Questions:
What does the Y stands for? Is there a reference doc for ARM mangling?
.sym mangled name:
_ZN10CCasd15lolEP13strPcPFvvEhPvm
compiler generated name:
_ZN10CCasd15lolEP13strPcPFYvvEhPvm
.h definition
class CCasd{
static int lol(in_str*h, char* name, void(*fn)(void), unsigned char p, void *s, unsigned long l);
};
POST-ANSWER CODE:
Here is how you can generate both the PFvv and the PFYvv mangled names:
#ifdef __cplusplus
extern "C" { /* C declarations in C++ */
#endif
class CCASD {
public:
static int lol(in_str*h, char* name, void(*fn)(void), unsigned char p, void *s, unsigned long l);//Will be PFYvv
};
#ifdef __cplusplus
} /* End of C declarations */
#endif
class CCASD {
public:
static int lol(in_str*h, char* name, void(*fn)(void), unsigned char p, void *s, unsigned long l);//Will be PFvv
};