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.

John.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to