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

Reply via email to