<HTML>
<div><style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Hi everyone,</div><div><br>
</div><div>Jonas and I were talking today through e-mail and he mentioned on #35346 the following interesting point:<br>
<br>
"An inline directive in the implementation but not in the interface 
should be rejected by the compiler, because it changes the interface 
crc. I know it does not do that currently, but that is a compiler bug."<br>
<br>
With Jonas' blessing, I've taken it upon myself to experiment with changing the compiler so it catches the above situation, but then "make all" fails to build because a large number of functions in the System unit have "inline" in the implementation section but not the interface section.  Some of these are assembler functions and so should not be inlined anyway (the compiler will not inline them regardless), but there are a number of functions like ReadBarrier that are inlined on some platforms but not on others, so putting "inline" in the interface section may not be the best solution in these situations.  More obviously, not allowing "inline" to appear in the implementation section by itself will potentially cause a lot of third-party programs and units to now fail compilation.</div><div><br>
</div><div>I'm attempting to change the functions in the System unit so the compiler at least builds on i386 and x86_64, but I can see this being a problem.  What's the best way of resolving this?<br>
<br>
Gareth aka. Kit<br>
</div> </HTML>