[fpc-devel] Const optimization is a serious bug

José Mejuto joshyfun at gmail.com
Tue Jul 5 19:27:41 CEST 2011


Hello FPC,

Tuesday, July 5, 2011, 6:44:24 PM, you wrote:

JM> Since the behaviour of "const" for automated types is
JM> explicitly defined by Borland as not causing any changes in
JM> reference counting (see the note at the bottom of
JM> http://docwiki.embarcadero.com/RADStudio/en/Using_Reference_Counting
JM> ), I think Martin/Florian's proposal to add the ability for adding
JM> extra compiler checks is best. It's similar to how range and
JM> overflow checking are optional.

But adding a checksum over allocated data or only over control data ?

This changes should be detected ?

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

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

Maybe "simply" add a constRefCount field which is only used with the
check automagic types turned on ? Anyway the worst behaviour is
refcount related do not ? If refcount should be updated and the
variable have a constRefCount>0 then something went wrong. Also this
mode should not impose a serious performance penalty.

-- 
Best regards,
 José




More information about the fpc-devel mailing list