On Sun, 29 Aug 2010, Jonas Maebe wrote:


On 29 Aug 2010, at 16:54, Michael Van Canneyt wrote:

His change would mean that the GCC compiler does things which we currently know 
nothing about, namely it pushes const parameters by reference in some cases.

No, the problem is many people (wrongly) use "const" in Pascal as an equivalent for "type 
const *" (= the unclean "const type *") of C, mostly for lack of a better alternative.

When in fact they should declare it as

 const P : ^type

? (knowing fully that this is semantically not quite the same)

This of course means that they must always provide the @ when calling this 
method.

In that case, to be more clean, I think it is better to simply correct the declarations and not to mess with the argument types at all.

Hm. A difficult problem in the case of the interface, since it would require adapting existing pascal code to match C semantics. Maybe your proposal is not so bad after all, using "constref"; at least that would make it very explicit.


Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to