[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