Fixed. cf. r185058. Thanks, -- Larisse.
On Wed, Jun 26, 2013 at 8:22 PM, Larisse Voufo <[email protected]> wrote: > Ah. Right. I'll fix that. > > > On Wed, Jun 26, 2013 at 7:09 PM, Eli Friedman <[email protected]>wrote: > >> On Wed, Jun 26, 2013 at 6:50 PM, Larisse Voufo <[email protected]> wrote: >> >>> Author: lvoufo >>> Date: Wed Jun 26 20:50:25 2013 >>> New Revision: 185056 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=185056&view=rev >>> Log: >>> Fix a conversion to incomplete type bug -- The error message now >>> specifically states that the type is incomplete and points to the forward >>> declaration of the incomplete type. >>> >>> Added: >>> cfe/trunk/test/SemaCXX/conversion-incomplete-type.cpp >>> Modified: >>> cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td >>> cfe/trunk/lib/Sema/SemaInit.cpp >>> cfe/trunk/lib/Sema/SemaOverload.cpp >>> >>> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=185056&r1=185055&r2=185056&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) >>> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Wed Jun 26 >>> 20:50:25 2013 >>> @@ -5014,6 +5014,8 @@ def err_typecheck_ambiguous_condition : >>> "conversion %diff{from $ to $|between types}0,1 is ambiguous">; >>> def err_typecheck_nonviable_condition : Error< >>> "no viable conversion%diff{ from $ to $|}0,1">; >>> +def err_typecheck_nonviable_condition_incomplete : Error< >>> + "no viable conversion%diff{ from $ to incomplete type $|}0,1">; >>> def err_typecheck_deleted_function : Error< >>> "conversion function %diff{from $ to $|between types}0,1 " >>> "invokes a deleted function">; >>> >>> Modified: cfe/trunk/lib/Sema/SemaInit.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=185056&r1=185055&r2=185056&view=diff >>> >>> ============================================================================== >>> --- cfe/trunk/lib/Sema/SemaInit.cpp (original) >>> +++ cfe/trunk/lib/Sema/SemaInit.cpp Wed Jun 26 20:50:25 2013 >>> @@ -6251,9 +6251,15 @@ bool InitializationSequence::Diagnose(Se >>> break; >>> >>> case OR_No_Viable_Function: >>> - S.Diag(Kind.getLocation(), >>> diag::err_typecheck_nonviable_condition) >>> - << Args[0]->getType() << DestType.getNonReferenceType() >>> - << Args[0]->getSourceRange(); >>> + if (!DestType.getNonReferenceType()->isIncompleteType() || >>> + !S.RequireCompleteType(Kind.getLocation(), >>> + DestType.getNonReferenceType(), >>> + >>> diag::err_typecheck_nonviable_condition_incomplete, >>> + Args[0]->getType(), >>> Args[0]->getSourceRange())) >>> + S.Diag(Kind.getLocation(), >>> diag::err_typecheck_nonviable_condition) >>> + << Args[0]->getType() << Args[0]->getSourceRange() >>> + << DestType.getNonReferenceType(); >>> >>> You don't need to call isIncompleteType() before calling >> RequireCompleteType(). >> >> -Eli >> > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
