diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/Disassembler.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/Disassembler.java index eb957ddd56..4a1634271e 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/Disassembler.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/disassemble/Disassembler.java @@ -1387,21 +1387,26 @@ public class Disassembler implements DisassemblerConflictHandler { return; } + boolean markAsError = true; + Address flowFrom = conflict.getFlowFromAddress(); String flowMsg = flowFrom != null ? (" (flow from " + flowFrom + ")") : ""; Address markAddr = address; if (!isBookmarkAllowed(markAddr)) { if (flowFrom != null) { markAddr = flowFrom; + if (conflict.getInstructionErrorType() == InstructionErrorType.MEMORY && + address.getOffset() == 0) { + markAsError = false; + } } else { return; } } - bmMgr.setBookmark(markAddr, BookmarkType.ERROR, ERROR_BOOKMARK_CATEGORY, - conflict.getConflictMessage() + flowMsg); - + bmMgr.setBookmark(markAddr, markAsError ? BookmarkType.ERROR : BookmarkType.WARNING, + ERROR_BOOKMARK_CATEGORY, conflict.getConflictMessage() + flowMsg); } private boolean isBookmarkAllowed(Address addr) {