This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ PATCH]: size_zero_node
- To: kenner at vlsi1 dot ultra dot nyu dot edu
- Subject: Re: [C++ PATCH]: size_zero_node
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Mon, 20 Mar 2000 10:44:33 -0800
- Cc: gcc-patches at gcc dot gnu dot org
- Organization: CodeSourcery, LLC
- References: <10003201828.AA15287@vlsi1.ultra.nyu.edu>
>>>>> "Richard" == Richard Kenner <kenner@vlsi1.ultra.nyu.edu> writes:
Richard> I assume that you mean "an unset TYPE_SIZE means an
Richard> *incomplete* type and VOID_TYPE isn't"?
Richard> Yes.
Richard> But `void' *is* incomplete.
Richard> I don't see it that way. I see it anp complete type that
Richard> represents nothing. I view an incomplete type as one
Richard> that can be completed later and void cannot.
The C and C++ standards say that `void' is an incomplete type, but, as
you say, one that can never be completed. In fact, the C++ standard
says, precisely:
The void type is an incomplete type that cannot be completed.
I, for one, think that the more the compiler uses standard terminology
to mean standard things, the better off we will be. GCC is built
around the C standard, even though it allows for lots of other
languages (and should!). Still, most of the basic notions in the tree
structure are C-based.
Your point of view isn't unreasonable, from a theoretical point of
view, but seems confusing to me in the compiler proper.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com