Date: Fri, 09 May 1997 21:20:17 -0600 From: "Justin T. Gibbs" <gibbs@plutotech.com> To: Terry Lambert <terry@lambert.org> Cc: hasty@rah.star-gate.com (Amancio Hasty), moore@WOLFENET.com, freebsd-hackers@FreeBSD.ORG Subject: Re: g++ shared library segfaults Message-ID: <199705100222.UAA05625@pluto.plutotech.com> In-Reply-To: Your message of "Fri, 09 May 1997 17:46:24 PDT." <199705100046.RAA01368@phaeton.artisoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>> > for (long i = 0; i < count; ++i) {
>> > ViewerColorInfo& info = _color_info->item_ref(i);
>> > if (strcmp(info._name, name) == 0) {
>> > break;
>> > }
>> > }
>> >
>> > later on it checks the value of i. I change the scope of i and doc just
>> > fired right up. Will "fix" similar referencs in doc.
>> >
>> > Uh, that's not an illegal reference. The scope of i extends to the
>> > end of the containing block, not the end of the "for" statement.
>
>For what it's worth, MSCVC++ and Borland C++ and Oregon C++ all have
>this same "compiler bug". Are you *sure* about the determination of
>scope?
There was a change in the C++ spec fairly recently and g++ as of 2.7.X
now follows the spec. From the NEWs entry in the g++ info document:
* As described above, the scope of variables declared in the
initialization part of a for statement has been changed; such
variables are now visible only in the loop body. Use
`-fno-for-scope' to get the old behavior. You'll need this flag
to build groff version 1.09, Ptolemy, and many other free software
packages.
> Terry Lambert
> terry@lambert.org
>---
>Any opinions in this posting are my own and not those of my present
>or previous employers.
>
--
Justin T. Gibbs
===========================================
FreeBSD: Turning PCs into workstations
===========================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705100222.UAA05625>
