FFX (Flow Fact in XML) format

Content

10 Control Flow Properties

These properties have for goal to help the analyses to understand the flow of control or to bound the flow of control to a subset of possibles paths. They are applied according to the context they are defined in.

CONTROL-PROPERTIES ::=
| <no-return LOCATION-ATTRS/>
| <no-call LOCATION-ATTRS/>
| <ignore-entry name="TEXT"/>
| <return LOCATION-ATTRS/>
| <multibranch LOCATION-ATTRS> <target LOCATION-ATTRS />* </multibranch>
| <multicall LOCATION-ATTRS> <target LOCATION-ATTRS /> </multicall></code>

This no-return flow fact informs that the located function never returns. This may be helpful for function as the C library "_exit".

When OTAWA encounters a call to the function identified by no-call, it will be ignored. This may help to avoid that very complex functions, like printf often only used in error cases, does not dominate and explode the WCET estimation.

In some executable files, symbols are marked as function entries but are not, possibly causing problems in instruction decoding. This problem may be avoided by marking such symbols as ignore-entry.

Some machine languages may make difficult the identification of the control flow as a return a function, an instruction marked as return ensures it is correctly interpreted.

The multibranch property is used to resolve a complex control to several targets (case of indirect branch found in switch compilation using tables). The first LOCATION-ATTRS is the control instruction itself and the target child elements locations represents the different possible targets.

The multicall is used to resolve a complex control to several targets (for example, function pointer calls). The first LOCATION-ATTRS is the call instruction itself and the target child elements locations represents the different possible targets.