This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: generalized lvalues -- patch outline
Hi,
On Tue, 23 Nov 2004, Daniel Berlin wrote:
> > FWIW, this extension is used in at least (determined from just looking at
> > the compiler errors):
> > wine, elfutils, rpm, freeglut, dietlibc, openswan, xv, xine and 50 other
> > packages.
>
> When you say used the extension, do you mean *intentionally* (IE it's in code
> that is part of the package), or is the extension part of code they
> include/link with from other packages (ie glibc, etc)
Those of them at which I looked, use it intentionally (mislead perhaps,
but intentionally). Sometimes it's in specialised code, like for instance
image manipulation (i.e. sweeping over an array), sometimes it's in
package generic code (for instance I saw list iterator macros, which use a
generic variable, but which are type indepependend, to implement generics
in C). I didn't see it used in something like system-wide headers
(although IIRC some Sun xdr headers once contained such code, but I think
that got fixed meanwhile).
In wine for instance it's in generated code (proxy and stub functions for
implementing the COM interfaces, i.e. all kinds of marshalling). The use
here usually is of the increment form (one pointer walking an array,
incremented by different amounts depending on the type).
Sure, this all could be fixed by changing all of the 50+ packages. Or by
implementing a very constrained form of the extension in GCC.
The only C++ packages in which I see this is alsamixergui, chasen,
knights, libebml and licq, so I personally would be thankful already for
having such extension only in C.
Practically speaking 4.0 is currently strictly less usefull in some
aspects for the average C programmer.
Ciao,
Michael.