------- Additional Comments From dberlin at gcc dot gnu dot org  2005-07-06 
00:16 -------
It's in the ml archives, i'll try to find it.

Basically, Mark and friends believe that in C, it's legal to add or subtract
some bytes from a pointer to a field of a structure  and have a valid pointer to
some other field of that structure.

This idiom is apparently in common usage regardless.

Nathan queried the C++ committee, and they actually *don't* think it's legal in
C++, but we have no way of differentiating this from dynamic_cast at the moment,
so we have to be conservative.

Thus, a pointer to a field passed to a function must be considered to clobber
the entire structure that field is contained in (all the way up the structure
chain).
IE if a pointer to a structure field escapes, the entire structure instance 
escapes.




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21407

Reply via email to