MCPcopy Create free account
hub / github.com/GJDuck/e9patch / getSymbolString

Function getSymbolString

src/e9tool/e9types.cpp:138–180  ·  view source on GitHub ↗

* Convert a symbol into a human-readable string. */

Source from the content-addressed store, hash-verified

136 * Convert a symbol into a human-readable string.
137 */
138static void getSymbolString(const Symbol &sym, std::string &str)
139{
140 str += sym.name;
141 if (sym.sig == TYPESIG_UNTYPED)
142 return;
143 str += '(';
144 bool prev = false;
145 for (unsigned i = 0; i < MAX_ARGNO; i++)
146 {
147 Type t = getType(sym.sig, i);
148 if (t == TYPE_NONE)
149 break;
150 if (prev)
151 str += ',';
152 prev = true;
153 if ((t & TYPE_CONST) != 0)
154 str += "const ";
155 switch (t & ~(TYPE_CONST | TYPE_PTR | TYPE_PTR_PTR))
156 {
157 case TYPE_CHAR:
158 str += "char"; break;
159 case TYPE_INT8:
160 str += "int8_t"; break;
161 case TYPE_INT16:
162 str += "int16_t"; break;
163 case TYPE_INT32:
164 str += "int32_t"; break;
165 case TYPE_INT64:
166 str += "int64_t"; break;
167 case TYPE_VOID:
168 str += "void"; break;
169 case TYPE_NULL_PTR:
170 str += "std::nullptr_t"; break;
171 default:
172 str += "???"; break;
173 }
174 if ((t & TYPE_PTR) != 0)
175 str += " *";
176 else if ((t & TYPE_PTR_PTR) != 0)
177 str += " **";
178 }
179 str += ')';
180}
181void getSymbolString(const char *name, TypeSig sig, std::string &str)
182{
183 Symbol sym(name, sig);

Callers 2

sendCallMetadataMethod · 0.85
lookupSymbolWarningsFunction · 0.85

Calls 1

getTypeFunction · 0.85

Tested by

no test coverage detected