On Wed, Nov 28, 2012 at 12:45 AM, WenHan Gu (谷汶翰) <[email protected]>wrote:

> Hello! Revision 4 uploaded.
> http://llvm.org/bugs/attachment.cgi?id=9603&action=diff
>
> 2012/11/28 Richard Smith <[email protected]>
>
>> On Tue, Nov 27, 2012 at 11:29 PM, WenHan Gu (谷汶翰) <[email protected]>wrote:
>>
>>> Wrong file, sorry.
>>> http://llvm.org/bugs/attachment.cgi?id=9602&action=diff
>>>
>>
>> Thanks!
>>
>> +/// @param[in,out] T  It will be decayed to a pointer automatically when
>> input
>>
>> Please use \param, not @param, to match the prevailing style in Clang.
>>
>>    // C++ 15.4p2: A type denoted in an exception-specification shall not
>> denote
>>    //   an incomplete type.
>> -  if (RequireCompleteType(Range.getBegin(), T,
>> +  if (!T->isArrayType() && !T->isFunctionType() &&
>> +      RequireCompleteType(Range.getBegin(), T,
>>                            diag::err_incomplete_in_exception_spec,
>>                            /*direct*/0, Range))
>>      return true;
>>
>> +  if (T->isArrayType())
>> +    T = Context.getArrayDecayedType(T);
>> +  else if (T->isFunctionType())
>> +    T = Context.getPointerType(T);
>>
>> Maybe move this before the RequireCompleteType call, and make the
>> RequireCompleteType the 'else' for these? It'd also be nice to reference
>> the relevant paragraph in the standard here.
>>
>
> Yes!
>
>
>>
>> --- a/test/SemaCXX/exception-spec-decay.cpp
>> +++ a/test/SemaCXX/exception-spec-decay.cpp
>> @@ -0,0 +1,33 @@
>> +// RUN: %clang -x c++ -fexceptions -emit-llvm -S -o - %s | FileCheck %s
>>
>> Please put this test in test/CodeGenCXX/, use %clang_cc1, and specify a
>> -triple.
>>
>> +    // CHECK-next: _ZTIPi
>>
>> Use "CHECK-NEXT:". FileCheck will ignore this line.
>>
>> A -fsyntax-only test would be useful. Something like:
>>
>
> I think checking mangled type string is more clear. Isn't it?
> Therefore, I move it into CodeGenCXX. Thanks!
>

We generally like to test things as early in the compilation process as
possible. Also, the Sema test and the CodeGen test are checking different
things; it would be entirely feasible for either test to pass while the
other test fails.

Checked in with a Sema testcase in r168822. Thanks!
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to