In message <20090811074826.GA16058@netbsd.org>, David Holland writes:
True.
Let's say we commit to you that, definitely, silly_t is a pointer.
Do you now know, without checking the API docs, whether or not bar is
valid? Well, uhm. No. (And if the function is a function-like macro,
you don't even know that foo and bar are still equal.)
Okay, but what if we say that, for sure, silly_t is not a pointer, but an
opaque non-pointer object. Now do you know? ... Well, actually, you still
don't know, because it could be that silly_t is a structure CONTAINING at
least one pointer. In which case bar might well now contain an invalid
pointer, or a pointer to an obsolete object, or... well, we just don't know.
So in short, if types can be opaque, you have already lost.
-s