[fpc-devel] [Dwarf AVR] DIE refers to abbreviation number which does not exist

Dimitrios Chr. Ioannidis d.ioannidis at nephelae.eu
Sun Feb 7 11:49:01 CET 2021


Hi,

   I made some more tests, and it seems that there is a problem with the 
array types, used in other units where they are defined.

   I don't know if it helps but, if I define an array type on unit B, 
which a unit A uses it, and the unit B has a procedure / function which 
is called from the unit B, then the warning / error goes away ( at least 
I don't get that warning / error ).

   i.e. the following doesn't produce the dwarf warning / error, using 
the FPC's cross tools :

==========CODE=========
program dwarf_DIE_ABBREV_Bug;

uses
   dwarf_DIE_ABBREV_Bug_used_unit;

var
   aArray: tmpArray;

begin

   dummy;

end.
==========CODE=========

==========CODE=========

unit dwarf_DIE_ABBREV_Bug_used_unit;

interface

type
   tmpArray = array[0..1] of word;

   procedure dummy;

implementation

procedure dummy;
begin
end;

end.
==========CODE=========


Build with : ppcrossavr.exe -MObjFPC -Tembedded -Pavr -CpAVR5 
-WpATMEGA328p -al -Xm -gw2 -O1 dwarf_DIE_ABBREV_Bug.pas


FPC version:

Free Pascal Compiler version 3.3.1

Compiler date      : 2021/02/04
Compiler CPU target: avr

Supported targets (targets marked with '{*}' are under development):
   embedded: Embedded

OS: Windows 10 64bit

regards,

-- 

Dimitrios Chr. Ioannidis



More information about the fpc-devel mailing list