AVR - internal error compiling assembler code that references a field of a record parameter
Original Reporter info from Mantis: ccrause @ccrause
-
Reporter name: Christo Crause
Original Reporter info from Mantis: ccrause @ccrause
- Reporter name: Christo Crause
Description:
When compiling the code below, an exception is generated on line 262 in raavrgas.pas because .location is nil, hence dereferencing it causes an access violation.
Steps to reproduce:
program test;
type
TUintRecord = packed record
l:byte;
h:byte;
end;
procedure delayloop2(const counter: TUintRecord); assembler;
asm
mov XH, counter.h
mov XL, counter.l
end;
var
t: TUintRecord;
begin
t.l := 1;
t.h := 0;
delayloop2(t);
end.
Compiler parameters: -Cpavr5 -dAVR -Wpatmega328p
Mantis conversion info:
- Mantis ID: 32915
- Build: r37884
- Version: 3.1.1
- Fixed in version: 3.1.1
- Fixed in revision: 38125 (#a29f968b)