[PATCH] Add _wassert to known noreturn functions

Jordan Rose jordan_rose at apple.com
Tue Nov 12 08:39:38 PST 2013


Yes, sorry, we discussed this on the cfe-users list: for the analyzer, we care more about reading the intent of the code from the assertions than from exploring the “continue anyway” case.

Anders, please do add a test. You can add it to test/Analysis/NoReturn.m with a forward-declaration of _wassert.

Jordan


On Nov 11, 2013, at 19:37 , Reid Kleckner <rnk at google.com> wrote:

> True, I forgot that. However, it's probably useful for the static analyzer to consider it noreturn for analysis purposes.
> 
> 
> On Mon, Nov 11, 2013 at 7:32 PM, Alp Toker <alp at nuanti.com> wrote:
> _wassert can emit a warning and return control depending on the flag /
> dialog input, no?
> 
> Alp.
> 
> On 12/11/2013 00:55, Reid Kleckner wrote:
> > Seems reasonable, but can you add a test?
> >
> >
> > On Mon, Nov 11, 2013 at 12:18 PM, Anders Montonen
> > <Anders.Montonen at iki.fi <mailto:Anders.Montonen at iki.fi>> wrote:
> >
> >     Microsoft's library headers do not annotate _wassert as being a
> >     noreturn function, causing analyzer false positives. Fix by adding
> >     it to NoReturnFunctionChecker's list of known noreturn functions.
> >
> >     -a
> >
> >     diff --git
> >     a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
> >     b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
> >     index d7a880c..1367021 100644
> >     --- a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
> >     +++ b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
> >     @@ -64,6 +64,7 @@ void
> >     NoReturnFunctionChecker::checkPostCall(const CallEvent &CE,
> >                  .Case("assfail", true)
> >                  .Case("db_error", true)
> >                  .Case("__assert", true)
> >     +            .Case("_wassert", true)
> >                  .Case("__assert_rtn", true)
> >                  .Case("__assert_fail", true)
> >                  .Case("dtrace_assfail", true)
> >     _______________________________________________
> >     cfe-commits mailing list
> >     cfe-commits at cs.uiuc.edu <mailto:cfe-commits at cs.uiuc.edu>
> >     http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> >
> >
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 
> --
> http://www.nuanti.com
> the browser experts
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131112/0c2e6812/attachment.html>


More information about the cfe-commits mailing list