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

Method DemangleUnqualifiedName

demangler/gnu3/demangle_gnu3.cpp:1034–1212  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1032}
1033
1034TypeBuilder DemangleGNU3::DemangleUnqualifiedName()
1035{
1036 indent()
1037 MyLogDebug("%s: '%s'\n", __FUNCTION__, m_reader.GetRaw().c_str());
1038
1039 TypeBuilder outType;
1040 char elm1 = m_reader.Read();
1041 char elm2 = m_reader.Read();
1042 switch (hash(elm1, elm2))
1043 {
1044 case hash('n','t'): // !
1045 case hash('n','g'): // - (unary)
1046 case hash('p','s'): // + (unary)
1047 case hash('a','d'): // & (unary)
1048 case hash('d','e'): // * (unary)
1049 case hash('i','x'): // []
1050 case hash('p','p'): // ++ (postfix in <expression> context)
1051 case hash('m','m'): // -- (postfix in <expression> context)
1052 case hash('l','s'): // <<
1053 case hash('r','s'): // >>
1054 case hash('a','S'): // =
1055 case hash('e','q'): // ==
1056 case hash('n','e'): // !=
1057 case hash('p','t'): // ->
1058 case hash('d','t'): // .
1059 case hash('m','l'): // *
1060 case hash('m','i'): // -
1061 case hash('p','l'): // +
1062 case hash('a','n'): // &
1063 case hash('p','m'): // ->*
1064 case hash('d','v'): // /
1065 case hash('r','m'): // %
1066 case hash('l','t'): // <
1067 case hash('l','e'): // <=
1068 case hash('g','t'): // >
1069 case hash('g','e'): // >=
1070 case hash('c','m'): // ,
1071 case hash('c','l'): // ()
1072 case hash('c','o'): // ~
1073 case hash('e','o'): // ^
1074 case hash('o','r'): // |
1075 case hash('a','a'): // &&
1076 case hash('o','o'): // ||
1077 case hash('m','L'): // *=
1078 case hash('p','L'): // +=
1079 case hash('m','I'): // -=
1080 case hash('d','V'): // /=
1081 case hash('r','M'): // %=
1082 case hash('r','S'): // >>=
1083 case hash('l','S'): // <<=
1084 case hash('a','N'): // &=
1085 case hash('o','R'): // |=
1086 case hash('e','O'): // ^=
1087 outType = CreateUnknownType("operator" + GetOperator(elm1, elm2));
1088 outType.SetNameType(GetNameType(elm1, elm2));
1089 break;
1090 case hash('t','i'):
1091 case hash('t','e'):

Callers

nothing calls this directly

Calls 15

MyLogDebugFunction · 0.85
CreateUnknownTypeFunction · 0.85
GetOperatorFunction · 0.85
GetNameTypeFunction · 0.85
c_strMethod · 0.80
GetClassMethod · 0.80
push_backMethod · 0.80
UnReadMethod · 0.80
DemangleExceptionClass · 0.70
GetRawMethod · 0.45
ReadMethod · 0.45
PeekMethod · 0.45

Tested by

no test coverage detected