Make sure the types are consistent for a void conditional. No visible

difference, but it's better to be consistent.

llvm-svn: 51961
This commit is contained in:
Eli Friedman 2008-06-04 19:47:51 +00:00
parent 2425cd8158
commit 3e1852fa7e
1 changed files with 4 additions and 4 deletions

View File

@ -917,15 +917,15 @@ inline QualType Sema::CheckConditionalOperands( // C99 6.5.15
// C99 6.5.15p5: "If both operands have void type, the result has void type."
// The following || allows only one side to be void (a GCC-ism).
if (lexT->isVoidType() || rexT->isVoidType()) {
if (!lexT->isVoidType()) {
if (!lexT->isVoidType())
Diag(rex->getLocStart(), diag::ext_typecheck_cond_one_void,
rex->getSourceRange());
return rexT.getUnqualifiedType();
}
if (!rexT->isVoidType())
Diag(lex->getLocStart(), diag::ext_typecheck_cond_one_void,
lex->getSourceRange());
return lexT.getUnqualifiedType();
ImpCastExprToType(lex, Context.VoidTy);
ImpCastExprToType(rex, Context.VoidTy);
return Context.VoidTy;
}
// C99 6.5.15p6 - "if one operand is a null pointer constant, the result has
// the type of the other operand."