On Tue, Jul 5, 2011 at 22:51, Martin <f...@mfriebe.de> wrote: > I think you misunderstood me. There is a (or there may be) a bug. But > *not* in the compiler, and *not* in the implementation of "const string". > I explicitly pointet that out on the top of the quotation "I don't think it > is a bug." (with reference to the feature itself) > > The bug(s) is/are in user code, where the const construct is *incorrectly* > used.
Well, then the following changes are in order: 1) The documentation should recommend users to never use "const string" parameters except cases where they can prove it to be safe. Moreover, since the safety of such code may be compromised by completely unrelated changes (e.g. by adding {$INLINE OFF} for debugging purposes), "const" modifier should not be used at all except the most performance-critical code. This is quite the opposite of the current practice, where all string parameters are usually marked by "const". 2) All such incorrect usage should be removed from LCL and FCL (for example: event handlers in LCL and TStrings methods in FCL). Personally, I think this solution is inferior to my proposal of implementing the optimization correctly by default. > An I was merely pointing out, that any usage without knowledge what it does > is incorrect usage (even if by accident it works). Therefore one might > consider such unaware/unknowing usage as a bug (a bug in the users code) Ok, FPC and Lazarus teams now have many bugs to fix ;-) I''ll start reviewing my TAChart code in a few days. -- Alexander S. Klenin _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel