[cfe-commits] r56096 - in /cfe/trunk: lib/Sema/SemaStmt.cpp test/SemaCXX/condition.cpp

Neil Booth neil at daikokuya.co.uk
Thu Sep 11 06:49:51 PDT 2008


Argiris Kirtzidis wrote:-

> Author: akirtzidis
> Date: Thu Sep 11 00:16:22 2008
> New Revision: 56096
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=56096&view=rev
> Log:
> Do implicit conversion to bool for the condition in a do-while statement.
> 
> Modified:
>     cfe/trunk/lib/Sema/SemaStmt.cpp
>     cfe/trunk/test/SemaCXX/condition.cpp
> 
> Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=56096&r1=56095&r2=56096&view=diff
> 
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaStmt.cpp Thu Sep 11 00:16:22 2008
> @@ -530,7 +530,10 @@
>    DefaultFunctionArrayConversion(condExpr);
>    QualType condType = condExpr->getType();
>    
> -  if (!condType->isScalarType()) // C99 6.8.5p2
> +  if (getLangOptions().CPlusPlus) {
> +    if (CheckCXXBooleanCondition(condExpr)) // C++ 6.4p4
> +      return true;
> +  } else if (!condType->isScalarType()) // C99 6.8.5p2
>      return Diag(DoLoc, diag::err_typecheck_statement_requires_scalar,
>               condType.getAsString(), condExpr->getSourceRange());

Isn't this just checking the conversion is OK, but not doing it?

Neil.



More information about the cfe-commits mailing list