From: Chris Lattner Date: Wed, 18 Jul 2007 16:00:06 +0000 (+0000) Subject: Cast to void is valid, patch by Benoit Boissinot X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=75af4801c87ab5a58b40f03d669392c2abe0f292;p=clang Cast to void is valid, patch by Benoit Boissinot git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40003 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Sema/SemaExpr.cpp b/Sema/SemaExpr.cpp index 6439e48e9d..044fb63bf0 100644 --- a/Sema/SemaExpr.cpp +++ b/Sema/SemaExpr.cpp @@ -478,8 +478,9 @@ ParseCastExpr(SourceLocation LParenLoc, TypeTy *Ty, Expr *castExpr = static_cast(Op); QualType castType = QualType::getFromOpaquePtr(Ty); - // C99 6.5.4p2: both the cast type and expression type need to be scalars. - if (!castType->isScalarType()) { + // C99 6.5.4p2: the cast type needs to be void or scalar and the expression + // type needs to be scalar. + if (!castType->isScalarType() && !castType->isVoidType()) { return Diag(LParenLoc, diag::err_typecheck_cond_expect_scalar, castType.getAsString(), SourceRange(LParenLoc, RParenLoc)); }