You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Maintain gotos when present in the original C code #186
I have a feeling this might be a significant issue, since the core concept of rellic's underlying structurization doesn't allow for unstructured control flow i.e. goto.
Perhaps there's a way to support this, i.e. via sequencing regions or something, where a goto itself is treated as some kind of black box. This is not a priority feature but one to keep in mind, as C code that uses gotos has often made a deliberate choice to use gotos, and the label names are semantically valuable. Being able to maintain that value seems advantageous.
...and the label names are semantically valuable. Being able to maintain that value seems advantageous.
Agreed.
While it might be possible to somehow incorporate goto statements into the code itself, I think it would be much better to somehow annotate blocks of code near the label with the name of the label or something like that. And then if the code doesn't look as nice, I'd try to figure out how to improve reaching condition simplification. This way we stay in line of the original algorithm and we improve non-goto outputs as well.
Activity
surovic commentedon Oct 19, 2021
I have a feeling this might be a significant issue, since the core concept of rellic's underlying structurization doesn't allow for unstructured control flow i.e.
goto.pgoodman commentedon Oct 19, 2021
Perhaps there's a way to support this, i.e. via sequencing regions or something, where a
gotoitself is treated as some kind of black box. This is not a priority feature but one to keep in mind, as C code that usesgotos has often made a deliberate choice to usegotos, and the label names are semantically valuable. Being able to maintain that value seems advantageous.surovic commentedon Oct 20, 2021
Agreed.
While it might be possible to somehow incorporate
gotostatements into the code itself, I think it would be much better to somehow annotate blocks of code near the label with the name of the label or something like that. And then if the code doesn't look as nice, I'd try to figure out how to improve reaching condition simplification. This way we stay in line of the original algorithm and we improve non-goto outputs as well.