On 8/15/10 8:17 PM, John McCall wrote: > > On Aug 15, 2010, at 6:58 PM, Eli Friedman wrote: > >> On Sun, Aug 15, 2010 at 6:16 PM, Charles Davis <[email protected]> >> wrote: >>> On 8/15/10 12:34 AM, Eli Friedman wrote: >>>> It would be nice to add the appropriate warning about constructing a >>>> member pointer to an incomplete type along with this... otherwise we >>>> can end up silently generating bad code. >>> It would be, but I don't know how to issue a diagnostic from the AST >>> library, so I've left that out for now. >> >> Erm, I was thinking more along the lines of tossing a call to >> RequireCompleteType into Sema::BuildMemberPointerType in SemaType.cpp >> if we're using the MS ABI. That should be a separate patch, though... > > We definitely need a RequireCompleteType here in MS mode — if nothing > else, to force instantiation. MSVC does permit the base to be an incomplete > type (falling back to the maximally general 8-byte representation), so if we > want > to be perfectly compatible we'll eventually need to pass an empty PDiag. For > now, though, we should probably just forbid it so that we can audit use cases > instead of silently compiling them differently from MSVC. Hopefully it's not > being > used in system headers. I see now.
On Aug 15, 2010, at 6:58 PM, Eli Friedman wrote: > Also, I think some extra checks in TryReinterpretCast in > SemaCXXCast.cpp are necessary; we shouldn't allow reinterpret_casting > between member pointers of different sizes. That sounds reasonable. But this is all for a separate patch. Is this one OK to commit? Chip _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
