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
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel