Specifications
7 WARNING AND ERROR MESSAGES
7.1 Warning messages
The following lists the Bound-T warning messages that are specific to the H8/300 or that have
a specific interpretation for this processor. The messages are listed in alphabetical order. Any
italic word or symbol in the message stands for a variable string.
The Bound-T Reference Manual [2] explains the generic warning messages, all of which may
appear also when the H8/300 is the target. The Bound-T Assertion Language manual [3]
explains the generic warning messages related to assertions. The specific warning messages
listed below refer mainly to unsupported or approximated features of the H8/300 or to
possible errors in the given executable program file.
As Bound-T evolves, the set and form of these messages may change, so this list may be out of
date to some extent. However, we have tried to make the messages clear enough to be
understood even without explanation. Feel free to ask Tidorum for an explanation of any
Bound-T output that seems obscure.
Table 13: Warning messages
Warning Message Meaning and Remedy
Assignment to R makes stack height
unknown
Reasons The instruction assigns a new value to the 8-bit register R
which is either R7L or R7H which means that Bound-T's
model loses track of how much has been pushed on the
stack, that is, the local stack height becomes unknown. This
means that Bound-T may be unable to track how data flows
in parameters and local variables. It also means that Bound-
T will not be able to bound the stack usage of the
subprogram.
Action
Study why this instruction exists and try to remove it or
replace it with an instruction that assigns to the word
register R7.
Assuming constant jump-address
table at A
Reasons
Bound-T has detected an instruction pair of the form
MOV.W @(A, Ri), Rj
JMP @Rj
and assumes that this pair uses a constant table of code
addresses starting at the address A. See section 5.6.
Action
Check that the assumption holds. If the table in fact is not
constant, either make it constant (justifying the assumption)
or change the instruction pair somehow to prevent Bound-T
from detecting it (for example, add a NOP instruction
between the MOV.W and the JMP).
Assuming constant vector to A at V Reasons
Bound-T has found an instruction of the form JMP @@V or
JSR @@V and has also found that the memory image in the
binary executable file loads the address A into the vector
slot V. Bound-T assumes that the vector slot will be held
constant (always contain A) and therefore models the
instruction as a jump to A, or a call of the subprogram with
address A, respectively. See section 5.6.
Action
Check the target program and verify that the assumption
holds. If the assumption is wrong, change the target
program.
Bound-T for H8/300 Warning messages 35