This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: Compiling GCC With a C++ Compiler (g++)
- From: "Dave Korn" <dk at artimi dot com>
- To: "'Geoffrey Keating'" <geoffk at apple dot com>
- Cc: "'Joseph S. Myers'" <jsm at polyomino dot org dot uk>,"'Zack Weinberg'" <zack at codesourcery dot com>,"'Ranjit Mathew'" <rmathew at gmail dot com>,<gcc at gcc dot gnu dot org>,"'Andreas Schwab'" <schwab at suse dot de>,"'Gabriel Dos Reis'" <gdr at cs dot tamu dot edu>
- Date: Thu, 14 Oct 2004 13:33:54 +0100
- Subject: RE: Compiling GCC With a C++ Compiler (g++)
[ Phil Edwards snecked from Cc: line in accordance with his wish to escape
"this eternal thread"! ]
> -----Original Message-----
> From: Geoffrey Keating
> Sent: 13 October 2004 20:42
> On 13/10/2004, at 8:23 AM, Dave Korn wrote:
> > Huh? Are you saying that in:
> >
> > typedef struct { const char x } AA;
> >
> > AA *py1, py2;
> > AA y1 = { z };
> >
> > py1 = malloc (sizeof *py2);
> > py2 = &y1;
> >
> > it is valid to say
> >
> > *(char *)(&py1->x) = '?';
> >
> > but not valid to say
> >
> > *(char *)(&py2->x) = '?';
>
> Yes, that sounds right.
Wow, we really seem to me to be entering the realm of the bizarre here.
What about this function: is it valid, conformant C?
void fubar (const char *x)
{
*(char *)x = '?';
}
Is it not implicit from what you've just told me that the answer to the
question of whether or not that function is valid conformant C depends on
whether the value of the pointer you pass into it was originally derived
from a call to malloc (valid) or by taking the address-of a local or static
variable (not valid)? Does this still make sense? It's making my mind
boggle in several directions at once.
cheers,
DaveK
--
Can't think of a witty .sigline today....