Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/GP-2082_DefaultBlockSingleton' into
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanmkurtz committed Jun 10, 2022
2 parents ac56db7 + 987b524 commit d8f5942
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
12 changes: 12 additions & 0 deletions Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,18 @@ void FlowBlock::setGotoBranch(int4 i)
outofthis[i].point->flags |= f_interior_gotoin;
}

/// The switch can have exactly 1 default edge, so we make sure other edges are not marked.
/// \param pos is the index of the \e out edge that should be the default
void FlowBlock::setDefaultSwitch(int4 pos)

{
for(int4 i=0;i<outofthis.size();++i) {
if (isDefaultBranch(i))
clearOutEdgeFlag(i, f_defaultswitch_edge); // Clear any previous flag
}
setOutEdgeFlag(pos,f_defaultswitch_edge);
}

/// \b return \b true if block is the target of a jump
bool FlowBlock::isJumpTarget(void) const

Expand Down
2 changes: 1 addition & 1 deletion Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ public:
void setVisitCount(int4 i) { visitcount = i; } ///< Set the number of times this block has been visited
int4 getVisitCount(void) const { return visitcount; } ///< Get the count of visits
void setGotoBranch(int4 i); ///< Mark a \e goto branch
void setDefaultSwitch(int4 i) { setOutEdgeFlag(i,f_defaultswitch_edge); } ///< Mark an edge as the switch default
void setDefaultSwitch(int4 pos); ///< Mark an edge as the switch default
bool isMark(void) const { return ((flags&f_mark)!=0); } ///< Return \b true if \b this block has been marked
void setMark(void) { flags |= f_mark; } ///< Mark \b this block
void clearMark(void) { flags &= ~f_mark; } ///< Clear any mark on \b this block
Expand Down

0 comments on commit d8f5942

Please sign in to comment.