On 8/15/10 9:24 PM, John McCall wrote: > > On Aug 15, 2010, at 7:45 PM, Charles Davis wrote: > >> 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? > > Yeah, I think this is fine. Committed in r111117.
Chip _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
