r222081 - Fix issues missed during the review of r222099.

jahanian fjahanian at apple.com
Mon Nov 17 09:43:47 PST 2014


Thanks. I felt like we should consistently call the Sema:: variety instead of the helper function in some places. So,
I was forced to make it public.

- Fariborz

> On Nov 14, 2014, at 10:37 PM, Richard Trieu <rtrieu at google.com> wrote:
> 
> Author: rtrieu
> Date: Sat Nov 15 00:37:39 2014
> New Revision: 222081
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=222081&view=rev
> Log:
> Fix issues missed during the review of r222099.
> 
> Shift some functions around, make a method in Sema private,
> call the correct overloaded function.  No functional change.
> 
> Modified:
>    cfe/trunk/include/clang/Sema/Sema.h
>    cfe/trunk/lib/Sema/SemaChecking.cpp
> 
> Modified: cfe/trunk/include/clang/Sema/Sema.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=222081&r1=222080&r2=222081&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Sema/Sema.h (original)
> +++ cfe/trunk/include/clang/Sema/Sema.h Sat Nov 15 00:37:39 2014
> @@ -2771,8 +2771,6 @@ public:
>                                       const AttributeList *AttrList);
> 
>   void checkUnusedDeclAttributes(Declarator &D);
> -    
> -  void CheckBoolLikeConversion(Expr *E, SourceLocation CC);
> 
>   /// Determine if type T is a valid subject for a nonnull and similar
>   /// attributes. By default, we look through references (the behavior used by
> @@ -8592,6 +8590,7 @@ private:
> 
>   void CheckFloatComparison(SourceLocation Loc, Expr* LHS, Expr* RHS);
>   void CheckImplicitConversions(Expr *E, SourceLocation CC = SourceLocation());
> +  void CheckBoolLikeConversion(Expr *E, SourceLocation CC);
>   void CheckForIntOverflow(Expr *E);
>   void CheckUnsequencedOperations(Expr *E);
> 
> 
> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=222081&r1=222080&r2=222081&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Sat Nov 15 00:37:39 2014
> @@ -6526,6 +6526,14 @@ void CheckConditionalOperator(Sema &S, C
>                             E->getType(), CC, &Suspicious);
> }
> 
> +/// CheckBoolLikeConversion - Check conversion of given expression to boolean.
> +/// Input argument E is a logical expression.
> +static void CheckBoolLikeConversion(Sema &S, Expr *E, SourceLocation CC) {
> +  if (S.getLangOpts().Bool)
> +    return;
> +  CheckImplicitConversion(S, E->IgnoreParenImpCasts(), S.Context.BoolTy, CC);
> +}
> +
> /// AnalyzeImplicitConversions - Find and report any interesting
> /// implicit conversions in the given expression.  There are a couple
> /// of competing diagnostics here, -Wconversion and -Wsign-compare.
> @@ -6606,12 +6614,12 @@ void AnalyzeImplicitConversions(Sema &S,
>     AnalyzeImplicitConversions(S, ChildExpr, CC);
>   }
>   if (BO && BO->isLogicalOp()) {
> -    S.CheckBoolLikeConversion(BO->getLHS(), BO->getLHS()->getExprLoc());
> -    S.CheckBoolLikeConversion(BO->getRHS(), BO->getRHS()->getExprLoc());
> +    ::CheckBoolLikeConversion(S, BO->getLHS(), BO->getLHS()->getExprLoc());
> +    ::CheckBoolLikeConversion(S, BO->getRHS(), BO->getRHS()->getExprLoc());
>   }
>   if (const UnaryOperator *U = dyn_cast<UnaryOperator>(E))
>     if (U->getOpcode() == UO_LNot)
> -      S.CheckBoolLikeConversion(U->getSubExpr(), CC);
> +      ::CheckBoolLikeConversion(S, U->getSubExpr(), CC);
> }
> 
> } // end anonymous namespace
> @@ -6670,18 +6678,6 @@ static bool IsInAnyMacroBody(const Sourc
>   return false;
> }
> 
> -/// CheckBoolLikeConversion - Check conversion of given expression to boolean.
> -/// Input argument E is a logical expression.
> -static void CheckBoolLikeConversion(Sema &S, Expr *E, SourceLocation CC) {
> -  if (S.getLangOpts().Bool)
> -    return;
> -  CheckImplicitConversion(S, E->IgnoreParenImpCasts(), S.Context.BoolTy, CC);
> -}
> -
> -void Sema::CheckBoolLikeConversion(Expr *E, SourceLocation CC) {
> -  ::CheckBoolLikeConversion(*this, E, CC);
> -}
> -
> /// \brief Diagnose pointers that are always non-null.
> /// \param E the expression containing the pointer
> /// \param NullKind NPCK_NotNull if E is a cast to bool, otherwise, E is
> @@ -6839,6 +6835,12 @@ void Sema::CheckImplicitConversions(Expr
>   AnalyzeImplicitConversions(*this, E, CC);
> }
> 
> +/// CheckBoolLikeConversion - Check conversion of given expression to boolean.
> +/// Input argument E is a logical expression.
> +void Sema::CheckBoolLikeConversion(Expr *E, SourceLocation CC) {
> +  ::CheckBoolLikeConversion(*this, E, CC);
> +}
> +
> /// Diagnose when expression is an integer constant expression and its evaluation
> /// results in integer overflow
> void Sema::CheckForIntOverflow (Expr *E) {
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list