[fpc-devel] TDef flags

Sven Barth pascaldragon at googlemail.com
Sun Jul 4 12:41:16 CEST 2021


Am 03.07.2021 um 15:01 schrieb J. Gareth Moreton via fpc-devel:
> Hi everyone,
>
> I'm trying to fix i38827, and am trying a few things.  One thing I've 
> noticed is that some specializations have both the df_generic and 
> df_specialization flags set, and the def missing from the debug 
> information that raises the linker error is one such def. Manually 
> removing the df_generic fixes the problem (since the presence of the 
> flag stops it from being written to the debug information), but is 
> there a situation where a def can legitimately have both flags set?
>
> To guess, I would say if a generic has multiple parameters and not all 
> of them are specialized, then that makes a def that's both, but then a 
> fully specialized generic type shouldn't have the generic flag any 
> more, right?

First of you *do not* modify defs when writing debug information. 
Period. (except for fields that are *only* related to debug information)

Second df_generic is set for any def *inside* a generic. The TArray<T> 
is a specialization inside a generic thus it will have both flags set.

Regards,
Sven


More information about the fpc-devel mailing list