GP-645 changed assembler to ignore external symbol names

This commit is contained in:
ghidra1 2021-01-28 17:54:42 -05:00
parent f3889762e0
commit f41eb4ab4d

View file

@ -29,8 +29,7 @@ import ghidra.program.model.lang.*;
import ghidra.program.model.listing.*; import ghidra.program.model.listing.*;
import ghidra.program.model.mem.Memory; import ghidra.program.model.mem.Memory;
import ghidra.program.model.mem.MemoryAccessException; import ghidra.program.model.mem.MemoryAccessException;
import ghidra.program.model.symbol.Symbol; import ghidra.program.model.symbol.*;
import ghidra.program.model.symbol.SymbolIterator;
import ghidra.util.task.TaskMonitor; import ghidra.util.task.TaskMonitor;
/** /**
@ -240,6 +239,13 @@ public class SleighAssembler implements Assembler {
final SymbolIterator it = program.getSymbolTable().getAllSymbols(false); final SymbolIterator it = program.getSymbolTable().getAllSymbols(false);
while (it.hasNext()) { while (it.hasNext()) {
Symbol sym = it.next(); Symbol sym = it.next();
if (sym.isExternal()) {
continue; // skip externals - will generally be referenced indirectly not directly
}
SymbolType symbolType = sym.getSymbolType();
if (symbolType != SymbolType.LABEL && symbolType != SymbolType.FUNCTION) {
continue;
}
labels.put(sym.getName(), sym.getAddress().getOffset()); labels.put(sym.getName(), sym.getAddress().getOffset());
} }
} }