Compiling GCC With a C++ Compiler (g++)
Dave Korn
dk@artimi.com
Thu Oct 14 13:26:00 GMT 2004
[ 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....
More information about the Gcc
mailing list