Ted Kremenek
dc891429e4
Rename all 'EvalXXX' methods in libChecker to
...
'evalXXX'.
llvm-svn: 120609
2010-12-01 21:57:22 +00:00
Zhongxing Xu
032071688b
Rename CXXObjectRegion to CXXTempObjectRegion.
...
llvm-svn: 120176
2010-11-26 08:52:48 +00:00
Zhongxing Xu
8be65a792f
When getting CXXThisRegion from CXXMethodDecl, use the qualifiers. This is
...
to be consistent with the type of 'this' expr in the method.
此行及以下内容将会被忽略--
M test/Analysis/method-call.cpp
M include/clang/Checker/PathSensitive/GRExprEngine.h
M lib/Checker/GRCXXExprEngine.cpp
llvm-svn: 120094
2010-11-24 13:48:50 +00:00
Zhongxing Xu
a1a9ba11b7
Let StackFrameContext represent if the call expr is evaluated as lvalue.
...
This is required for supporting const reference to temporary objects.
llvm-svn: 120093
2010-11-24 13:08:51 +00:00
Zhongxing Xu
cb29802198
Use StackFrameContext directly in CallEnter program point. Then we don't need
...
to remake the stackframe everytime in GRExprEngine::ProcessCallEnter().
llvm-svn: 120087
2010-11-24 08:53:20 +00:00
Zhongxing Xu
2c966716ff
Handle CFGAutomaticObjDtor.
...
llvm-svn: 119897
2010-11-20 06:53:12 +00:00
Marcin Swiderski
e5a1e8ae12
Added method for handling CXXOperatorCallExpr differently from CallExpr if CXXOperatorCallExpr represents method call.
...
Also fixed returning ExpolodedNodeSet from VisitCXXMethodCallExpr.
llvm-svn: 119684
2010-11-18 06:29:23 +00:00
Marcin Swiderski
af56739355
In EvalArguments allow for evaluation of first argument always as a lvalue. Will be used for CXXOperatorCallExpr that represents method call.
...
llvm-svn: 119567
2010-11-17 21:27:36 +00:00
Zhongxing Xu
35d023164c
do not do post checks. Because at this point we just enter the call.
...
llvm-svn: 119480
2010-11-17 07:31:08 +00:00
Zhongxing Xu
366340298e
Remove comments. We are already doing actual method call by inlining it.
...
llvm-svn: 119477
2010-11-17 07:21:49 +00:00
John McCall
6dd263e31b
Reverting r119341: doesn't compile, no obvious fix.
...
llvm-svn: 119342
2010-11-16 09:18:38 +00:00
Marcin Swiderski
76e66c1d60
Refactored GRExprEngine::getCXXThisRegion to use CXXMethodDecl::getThisType instead of calculating it by hand.
...
llvm-svn: 119341
2010-11-16 08:50:38 +00:00
Zhongxing Xu
1ade3267d7
Handle member initializer in C++ ctor.
...
- Add a new Kind of ProgramPoint: PostInitializer.
- Still use GRStmtNodeBuilder. But special handling PostInitializer in
GRStmtNodeBuilder::GenerateAutoTransition().
- Someday we should clean up the interface of GRStmtNodeBuilder.
llvm-svn: 119335
2010-11-16 07:52:17 +00:00
Zhongxing Xu
627a1868d2
Now initializer of C++ record type is visited as block-level expr.
...
Let the destination of AggExprVisitor be an explicit MemRegion.
Reenable the test case.
llvm-svn: 117908
2010-11-01 09:09:44 +00:00
Ted Kremenek
b0e7d77729
Include changes to VisitCXXMemberCallExpr (call visitor functions).
...
llvm-svn: 115120
2010-09-30 01:06:29 +00:00
Ted Kremenek
fd5856adcb
Refactor GRExprEngine::VisitCall() to use EvalArguments(), just like VisitCXXMemberCallExpr(). Ideally we should unify these code paths as much as possible, since they only differ by a few details.
...
llvm-svn: 114628
2010-09-23 05:14:51 +00:00
Zhongxing Xu
5b297da1de
Improve comments.
...
llvm-svn: 111897
2010-08-24 04:26:55 +00:00
Jordy Rose
ddec092641
Makes GRState::makeWithStore private, to encourage clients to make store changes through GRState instead of directly accessing the StoreManager. Also adds cover methods for InvalidateRegion(s) and EnterStackFrame to GRState.
...
This is in preparation for proposed region change notifications. No functionality change.
llvm-svn: 110137
2010-08-03 20:44:35 +00:00
Zhongxing Xu
edb77fe8b4
Constify all references to Stmt* and CFGBlock* in libChecker.
...
llvm-svn: 108811
2010-07-20 06:22:24 +00:00
Zhongxing Xu
84f65e0692
Reapply r108617.
...
llvm-svn: 108668
2010-07-19 01:31:21 +00:00
Benjamin Kramer
e2e031ed6f
Revert r108617, it broke the build.
...
llvm-svn: 108621
2010-07-17 13:51:58 +00:00
Zhongxing Xu
4ca4a999b1
Prepare the analyzer for the callee in another translation unit:
...
Let AnalysisContext contain a TranslationUnit.
Let CallEnter refer to an AnalysisContext instead of a FunctionDecl.
llvm-svn: 108617
2010-07-17 11:12:42 +00:00
Zhongxing Xu
9174b2c2f9
Make -analyzer-inline-call not a separate analysis. Instead it's a boolean
...
flag now, and can be used with other analyses. Only turned it on for C++
methods for now.
llvm-svn: 103160
2010-05-06 02:59:29 +00:00
Zhongxing Xu
3affbe6b50
Use the right predecessor.
...
llvm-svn: 101981
2010-04-21 02:20:10 +00:00
Zhongxing Xu
d80755dac2
Add initial support for C++ delete expr.
...
llvm-svn: 101980
2010-04-21 02:17:31 +00:00
Zhongxing Xu
23030c9004
Replace code with a method call. No functionality change.
...
llvm-svn: 101876
2010-04-20 05:40:40 +00:00
Zhongxing Xu
40eb21a827
Improve handling of CXXNewExpr.
...
llvm-svn: 101862
2010-04-20 03:37:34 +00:00
Zhongxing Xu
6a479bf281
Move all C++ expression evaluation logic into its own file.
...
llvm-svn: 101772
2010-04-19 12:51:02 +00:00