Joerg Schilling wrote:
> Matthew Woehlke wrote:
> > First, a build failure: I had to change src/xheader.c:1097:
> >
> > -  const struct timespec mtime = data ? *(struct timespec *) data :
st->mtime;
> > +  const struct timespec mtime = data ? *(const struct timespec *)
data : st->mtime;
> >
> > (seems like a pedantic compiler thing, but...)
> 
> Not a pedantic compiler buit a compiler that honors "const".
> Unfortunately, GCC mostly ignores const.

If this was assigning a pointer, that would make sense, but that isn't
what is happening. This is assigning the value of a non-const struct to
a const struct, which should be a copy operation, shouldn't it?

Oddly enough, this succeeds:

====
struct bar {
    int x,y;
};

int main() {
    struct bar a = { 2, 5 };
    const struct bar b = a.y ? *(struct bar*)(&a) : a;
    return b.y;
}
====

...so I don't actually know why this failed in the first place.

Anyway, it isn't important. :-)

-- 
Matthew


Reply via email to