On 04/07/2022 21:11, Michael Van Canneyt via fpc-devel wrote:


On Mon, 4 Jul 2022, Joost van der Sluis via fpc-devel wrote:

Hi all,

I have a very small application, see below. One procedure is not called at all.

But when I compile with

ppcx64 -XX -CX testcfi.pp

The P$TESTCFI_$$_NEVERCALLES symbol is still in the executable.

On Windows (internal linker) this code is omitted from the executable, but not on Linux.

It's omitted here as well:

Not 100% on topic (sorry) but talking about symbols that are (or are not) included/excluded from the exe...

There are cases were (imho) too many symbols are omitted, and it has gotten worse from 3.2.3 to 3.3.1.

https://gitlab.com/freepascal.org/fpc/source/-/issues/39824
There may not be a variable of the class in question, but the class is created. Therefore it exists in the app, and could be needed by a debugger.

Yet while both 2.3.2 and 3.3.1 omit the info itself, an effort was made in 3.3.1 to clean up the $$vmt info too, imho that should be reverted, and the full info included.

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to