On 05/07/2011 18:27, José Mejuto wrote:
This changes should be detected ?

var
   a: ansistring;

procedure DoSomehting(const v: ansistring);
begin
   a[1]:='a';
end;

begin
   a:='b';
   DoSomething(a);
end.

It would probably best to detect this  changes too.
But since it would be more of a performance penality, i would like to see it as an option of it's own. (even if only used in debug/development, the penalty could be severe enough to hinter development)

Why detect those?
Well at current such a trick could actually be used intentionally. and it could work well, if done correctly.

But I expect this behaviour is not defined/documented.
If the optimizer improves, the optimizer could do thinks that would make any code fail, if it uses such tricks. So better to let people know now, that it isn't safe.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to