On Nov 1, 2010, at 1:59 PM, Jim Goodnow II wrote:

> Hi,
> 
> Please review and commit this patch for PR7287. Thanks.

This isn't quite the right fix, because it won't handle, e.g., direct calls to 
an operator 

        operator+(x, y)


Instead, we should probably use FD->getIdentifier() and bail out early if it 
returns NULL.

        - Doug

> - jim
> 
> 
> Index: lib/Checker/CStringChecker.cpp
> ===================================================================
> --- lib/Checker/CStringChecker.cpp    (revision 117848)
> +++ lib/Checker/CStringChecker.cpp    (working copy)
> @@ -901,6 +901,9 @@
>   const Expr *Callee = CE->getCallee();
>   const FunctionDecl *FD = state->getSVal(Callee).getAsFunctionDecl();
> 
> +  // Ignore C++ operator calls or getName() will implode
> +  if (isa<CXXOperatorCallExpr>(CE))
> +    return false;
>   if (!FD)
>     return false;
> 
> Index: lib/Checker/PthreadLockChecker.cpp
> ===================================================================
> --- lib/Checker/PthreadLockChecker.cpp        (revision 117848)
> +++ lib/Checker/PthreadLockChecker.cpp        (working copy)
> @@ -62,6 +62,9 @@
>   const FunctionTextRegion *R =
>     
> dyn_cast_or_null<FunctionTextRegion>(state->getSVal(Callee).getAsRegion());
> 
> +  // Ignore C++ operator calls or getName() will implode
> +  if (isa<CXXOperatorCallExpr>(CE))
> +    return;
>   if (!R)
>     return;
>   <PR7287.patch>_______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to