Use std::string for symbol/section/node names and assertion messages

This commit is contained in:
Rangi42
2024-02-27 18:59:38 -05:00
committed by Sylvie
parent a24df27cd8
commit 48b2e94aa3
12 changed files with 172 additions and 201 deletions

View File

@@ -16,8 +16,9 @@ std::map<std::string, struct Symbol *> symbols;
void sym_AddSymbol(struct Symbol *symbol)
{
// Check if the symbol already exists
if (struct Symbol *other = sym_GetSymbol(symbol->name); other) {
fprintf(stderr, "error: \"%s\" both in %s from ", symbol->name, symbol->objFileName);
if (struct Symbol *other = sym_GetSymbol(*symbol->name); other) {
fprintf(stderr, "error: \"%s\" both in %s from ", symbol->name->c_str(),
symbol->objFileName);
dumpFileStack(symbol->src);
fprintf(stderr, "(%" PRIu32 ") and in %s from ",
symbol->lineNo, other->objFileName);
@@ -27,10 +28,10 @@ void sym_AddSymbol(struct Symbol *symbol)
}
// If not, add it
symbols[symbol->name] = symbol;
symbols[*symbol->name] = symbol;
}
struct Symbol *sym_GetSymbol(char const *name)
struct Symbol *sym_GetSymbol(std::string const &name)
{
auto search = symbols.find(name);
return search != symbols.end() ? search->second : NULL;