Sema::ParseCastExpr() missing call to UsualUnaryConversions().

The following case now works...

void empty(void * a ) {}

void test()
{
    unsigned char A[4]; 
    empty( (void *) A); 
}

Thanks to Patrick Flannery for finding this...

llvm-svn: 41630
This commit is contained in:
Steve Naroff 2007-08-31 00:32:44 +00:00
parent ab871baaf8
commit 43b8f7fa4f
1 changed files with 2 additions and 0 deletions

View File

@ -657,6 +657,8 @@ ParseCastExpr(SourceLocation LParenLoc, TypeTy *Ty,
Expr *castExpr = static_cast<Expr*>(Op);
QualType castType = QualType::getFromOpaquePtr(Ty);
UsualUnaryConversions(castExpr);
// 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()) {