Hi,
seit heute erhalte ich bei IAR für Renesas RX folgende Warnung an einem
Funktionskopf:
"Warning[Ab006]: Undivisable displacement, truncated value 84 used"
Leider habe ich im Netz genau nichts darüber gefunden und wäre deshalb
für jeden Hinweis dankbar.
Der Funktionskopf sieht so aus:
Std_ReturnType DC_CalcValuesOfDatatype(UMB_MATH_T math,
const UMB_DATA_TYPE_T datatype_op_1,
const UMB_VAL_T op_1,
const UMB_DATA_TYPE_T datatype_op_2,
const UMB_VAL_T op_2,
const UMB_DATA_TYPE_T result_datatype,
UMB_VAL_T *p_result)
UMB_MATH_T und UMB_DATA_TYPE_T sind Enums, UMB_VAL_T ist eine Struktur.
Gruß, Florian
Displacement wird üblicherweise als Begriff benutzt bei offset-indiziertem Speicherzugriff. Da scheint irgendwo ein Offset zu groß zu sein. Eigentlich sollte ein Compiler dann natürlich eine andere Zugriffsmethode benutzen, insofern klingt mir das eher nach einem internen Compilerfehler. Was sagt denn der IAR-Support dazu?
Ich muss mich korrigieren: UMB_VAL_T ist eine Union. Den IAR-Support habe ich noch nicht gefragt. Was mich tatsächlich stutzig macht ist der "truncated value used" Hinweis, das hört sich nicht gut an.
Florian R. schrieb: > das hört sich nicht gut an. Sehe ich auch so. Das heißt, er greift irgendwohin für den Wert, aber sehr wahrscheinlich nicht dahin, wo wirklich das Gewünschte steht …
Gast
#4447373
Florian R. schrieb: > ... UMB_VAL_T ist eine Struktur. Übergib einfach einen Pointer statt der Struktur, dann kann es keine Alignment Probleme mehr geben.
Florian R. schrieb: > Ich muss mich korrigieren: UMB_VAL_T ist eine Union. Und wie groß ist die?
Gast
#4447538
Wie wäre es mit den ganzen Code und der Zeilenangabe von Compilermecker?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.