Problems with circular references and inline procedures.
Original Reporter info from Mantis: Joost
-
Reporter name: Joost van der Sluis
Original Reporter info from Mantis: Joost
- Reporter name: Joost van der Sluis
Description:
When you compile the IdGlobal unit from the attached zip-file, the IdStreamVCL unit is also compiled. But, the ppu-checksum (of the IdGlobal dependency) within the IdStreamVCL.ppu does not match the ppu-checksum of the IdGlobal.ppu itself. While they are both compiled in the same run of the compiler.
When IdGlobal is compiled for a second time, the dependencies do match.
This happens only when the IdGlobal unit has at least one inlined function, and there is a circular dependency. (When two units are referencing each-other, all goes well. The problem does occur with three units, though. As in the attached test)
Steps to reproduce:
1: compile IdGlobal
2: ppudump Idlobal.ppu, look for the checksum of the IdGlobal.ppu
3: ppudump IdStreamVCL, search for the IdGlobal checksum and notice that it does not match with the checksum of step 2.
4: compile IdGlobal again
5: ppudump IdStreamVCL, now the IdGlobal checksum matches the checksum from step 2.
To do the test again, remove all .ppu files and compile again...
Mantis conversion info:
- Mantis ID: 19673
- OS: Linux
- OS Build: Fedora 15
- Platform: x86_64
- Version: 2.5.1
- Monitored by: » luizamerico (Luiz Americo)