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?
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel