Is there any way to distinguish Rust legacy mangle name from C++ mangle name?

I want to implement a function:

bool ELF_IsRustMangleSym(const char* symName)
{
  ...
}

The input parameter is a mangle name, which may be a Rust legacy name or a C++ name.

For example,

Rust legacy mangle name: _ZN3std2fs8Metadata7created17h8df207f105c5d474E

C++ mangle name: _ZN5MyMapIiRKSsEC1ESt6vectorIRKSsE

There is no way, because it could also be a C or assembly function called "_ZN5MyMapIiRKSsEC1ESt6vectorIRKSsE"

Heuristically, the hash suffix 17h...E is a pretty good indicator.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.