On Dec 3, 2013, at 9:10 , Fariborz Jahanian <[email protected]> wrote:

> Author: fjahanian
> Date: Tue Dec  3 11:10:08 2013
> New Revision: 196296
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=196296&view=rev
> Log:
> Issue diagnostic when constructor or destructor
> return void expression. // rdar://15366494
> pr17759.
> 
> Modified:
>    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>    cfe/trunk/lib/Sema/SemaStmt.cpp
>    cfe/trunk/test/SemaCXX/return.cpp
> 
> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=196296&r1=196295&r2=196296&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Tue Dec  3 11:10:08 
> 2013
> @@ -6426,6 +6426,8 @@ def ext_return_has_void_expr : Extension
> def err_return_init_list : Error<
>   "%select{void function|void method|constructor|destructor}1 %0 "
>   "must not return a value">;
> +def err_ctor_dtor_returns_void : Error<
> +  "%select{constructor|destructor}1 %0 must not return void expression">;

Nitpicking: this wording makes it sound like it must return some other kind of 
expression. How about "...may not return an expression"? Or, if we care about 
being technically correct, "using an expression with 'return' is not allowed in 
a %select{constructor|destructor}0".

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

Reply via email to