| 1398 | } |
| 1399 | |
| 1400 | set<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 | |
| 1427 | void Demangle::DemangleModifiers(bool& _const, bool& _volatile, bool &isMember) |
| 1428 | { |