MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / DemanglePointerSuffix

Method DemanglePointerSuffix

demangler/msvc/demangle_msvc.cpp:1400–1425  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1398}
1399
1400set<BNPointerSuffix> Demangle::DemanglePointerSuffix()
1401{
1402 m_logger->LogDebug("%s: '%s'\n", __FUNCTION__, reader.GetRaw());
1403 set<BNPointerSuffix> suffix;
1404 if (reader.Peek() == '@')
1405 return suffix;
1406
1407 char elm = reader.Peek();
1408 for (int i = 0; i < 5; i++, elm = reader.Peek())
1409 {
1410 if (elm == 'E')
1411 suffix.insert(suffix.end(), Ptr64Suffix);
1412 else if (elm == 'F')
1413 suffix.insert(suffix.end(), UnalignedSuffix);
1414 else if (elm == 'G')
1415 suffix.insert(suffix.end(), ReferenceSuffix);
1416 else if (elm == 'H')
1417 suffix.insert(suffix.end(), LvalueSuffix);
1418 else if (elm == 'I')
1419 suffix.insert(suffix.end(), RestrictSuffix);
1420 else
1421 break;
1422 reader.Consume(1);
1423 }
1424 return suffix;
1425}
1426
1427void Demangle::DemangleModifiers(bool& _const, bool& _volatile, bool &isMember)
1428{

Callers

nothing calls this directly

Calls 6

LogDebugMethod · 0.80
GetRawMethod · 0.45
PeekMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
ConsumeMethod · 0.45

Tested by

no test coverage detected