[fpc-devel] question on dwarf2 info written by fpc 2.6.2

Martin lazarus at mfriebe.de
Sat Oct 5 21:08:37 CEST 2013


Just curliousity, nothing of the below is in any way a problem. Only I 
would like to understand.

program project1;
var a: integer;
begin
   a:=1;
end.

generates for "a"
DW_TAG_variable
which points to (via DW_AT_type)    DW_TAG_typedef
which points to (via DW_AT_type)   DW_TAG_base_type

Looking at the rtl source, you will see
     type Integer: longint;

"integer" is a declared type, of the build in (base type) longint.

DW_TAG_base_type has DW_AT_name = longint. That is expected

DW_TAG_typedef   has DW_AT_name = longint. That I do *NOT* understand.
DW_TAG_typedef   stands for the definition of "Integer", or does it not? 
If it does, then should not the name be "integer"?


On the other hand
var a: longint;
generates the same. Why?




More information about the fpc-devel mailing list