summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CFG.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Use default augument.Zhongxing Xu2010-10-011-3/+3
| | | | llvm-svn: 115271
* Simplify interface for addLocalScopeForStmt().Zhongxing Xu2010-10-011-9/+9
| | | | llvm-svn: 115270
* The old logic would add non-struct and non C++ struct variables to the localZhongxing Xu2010-10-011-7/+6
| | | | | | | scope. Now we only add C++ struct with non-trivial destructor variables to the local scope. llvm-svn: 115269
* Added generating CFGAutomaticObjDtors for exception variable in catch statement.Marcin Swiderski2010-10-011-0/+12
| | | | llvm-svn: 115266
* Added generating CFGAutomaticObjDtors for init statement, condition variable ↵Marcin Swiderski2010-10-011-3/+26
| | | | | | and implicit scope in for statement. llvm-svn: 115265
* dded generating CFGAutomaticObjDtors for condition variable and implicit ↵Marcin Swiderski2010-10-011-0/+18
| | | | | | scopes in switch statement. llvm-svn: 115264
* Added generating CFGAutomaticObjDtors for condition variable and implicit ↵Marcin Swiderski2010-10-011-1/+24
| | | | | | scopes in while and do statements. llvm-svn: 115262
* Added generating CFGAutomaticObjDtors for condition variable and implicit ↵Marcin Swiderski2010-10-011-0/+24
| | | | | | scopes in if statement. llvm-svn: 115256
* Fixed checking for trivial destructor in ↵Marcin Swiderski2010-10-011-3/+4
| | | | | | CFGBuilder::addLocalScopeForVarDecl. Checked type does not have to represent C++ class. llvm-svn: 115254
* Added:Marcin Swiderski2010-10-011-0/+10
| | | | | | | | - Adding LocalScope for CompoundStmt, - Adding CFGAutomaticObjDtors for end of scope, return, goto, break, continue, - Regression tests for above cases. llvm-svn: 115252
* Added methods for adding LocalScopes and CFGAutomaticObjDtors.Marcin Swiderski2010-09-301-0/+131
| | | | llvm-svn: 115237
* Added methods for inserting CFGAutomaticObjDtors to CFGBlocks,Marcin Swiderski2010-09-301-0/+37
| | | | | | Fixed some misspells in comments. llvm-svn: 115236
* Added:Marcin Swiderski2010-09-301-5/+36
| | | | | | | | | - post-increament, distance and bool conversion methods to LocalScope::const_iterator, - adding VarDecl to LocalScope. Fixed some misspells in comments. llvm-svn: 115227
* In preparation for adding generation of destructors for objects with ↵Marcin Swiderski2010-09-251-43/+166
| | | | | | | | | | automatic storage added: - LocalScope class with iterator used to pointing into it, - fat doxygen comment for LocalScope indended usage, - BlockScopePosPair class used for storing jump targets/sources (for: goto, break, continue), that replaces raw CFGBlock pointer used earlier for this purpose. llvm-svn: 114790
* Added:Marcin Swiderski2010-09-211-47/+109
| | | | | | | | - definitions of interfaces for CFGInitializer and CFGAutomaticObjDtor, - support for above classes to print_elem function (renamed print_stmt), - support for VarDecls in StmtPrinterHelper. llvm-svn: 114403
* Tidy up.Zhongxing Xu2010-09-161-5/+4
| | | | llvm-svn: 114062
* Introduce new CFGElement hierarchy to support C++ CFG, based on Marcin's patchZhongxing Xu2010-09-161-6/+18
| | | | | | and discussions with Ted and Jordy. llvm-svn: 114056
* Relax assertion in CFG builder when processing ForStmts. This fixes an ↵Ted Kremenek2010-09-151-1/+2
| | | | | | | | assertion failure on code containing GNU statement expressions reported in PR 8141. llvm-svn: 113953
* Add CFG::BuildOptions class to pass in CFG builder options under on ↵Ted Kremenek2010-09-141-18/+10
| | | | | | parameter. Patch by Marcin Świderski! llvm-svn: 113898
* Fix CFGBuilder crash reported in PR 8141.Ted Kremenek2010-09-141-2/+6
| | | | llvm-svn: 113826
* Remove from the CFG the half-implemented support for scoping information. ↵Ted Kremenek2010-09-131-42/+4
| | | | | | | | We decided that scope information doesn't belong in the CFG at all, since it is a lexical construct. Patch by Marcin Świderski! llvm-svn: 113798
* Add ObjCAtSynchronizedStmt to the CFG and add GRExprEngine support (PreVisit ↵Ted Kremenek2010-09-101-0/+4
| | | | | | for checkers). llvm-svn: 113572
* Remove stray ';' and convert tabs to spaces.Ted Kremenek2010-09-091-5/+5
| | | | llvm-svn: 113466
* Add 'filtered_pred_iterator' and 'filtered_succ_iterator' to CFGBlock. This ↵Ted Kremenek2010-09-091-0/+23
| | | | | | | | | allows a client to selectively walk successors/predecessors based on commonly used filters. For starters, add a filter to ignore 'default:' cases for SwitchStmts when all enum values are covered by CaseStmts. llvm-svn: 113449
* FinishBlock() is essentially doing nothing except returning '!badCFG'.Zhongxing Xu2010-09-061-55/+42
| | | | llvm-svn: 113149
* Simplify CFG construction: bail out early when we have a bad CFG.Zhongxing Xu2010-09-061-36/+32
| | | | llvm-svn: 113148
* Improve CFG printing support for CXXOperatorCallExpr and CXXBindTemporaryExpr.Ted Kremenek2010-08-311-5/+15
| | | | llvm-svn: 112619
* Explicitly handle CXXOperatorCallExpr when building CFGs. We should treat ↵Ted Kremenek2010-08-311-1/+2
| | | | | | | it the same as CallExprs. Fixes: <rdar://problem/8375510> [Boost] CFGBuilder crash in Boost.Graph llvm-svn: 112618
* Revert my lame attempt at appeasing the CFGBuilderDouglas Gregor2010-08-311-7/+0
| | | | llvm-svn: 112580
* Teach the CFGBuilder not do die on CXXBindTemporaryExpr, ↵Douglas Gregor2010-08-311-0/+7
| | | | | | CXXOperatorCallExpr. Fixes a Boost.Graph crasher. llvm-svn: 112578
* Explicitly handle CXXExprWithTemporaries during CFG construction by just ↵Ted Kremenek2010-08-281-0/+6
| | | | | | visiting the subexpression. While we don't do anything intelligent right now, this obviates a bogus -Wunreahable-code warning reported in PR 6130. llvm-svn: 112334
* GCC didn't care for my attempt at API compatibility, so brute-force everythingJohn McCall2010-08-251-7/+7
| | | | | | to the new constants. llvm-svn: 112047
* Fix horrible CFG bug caused by a series of NullStmts appearing at the ↵Ted Kremenek2010-08-171-1/+4
| | | | | | | | beginning of a do...while loop. This would cause the body of the DoStmt to be disconnected from the preceding code. llvm-svn: 111283
* CFGBuilder: don't create the empty "loop back" block for DoStmts if the loop ↵Ted Kremenek2010-08-171-12/+16
| | | | | | edge can never be taken. llvm-svn: 111282
* Fix CFGBuilder to not blow out the stack when processing deeply nested ↵Ted Kremenek2010-08-041-5/+32
| | | | | | CaseStmts. Fixes <rdar://problem/8268753>. llvm-svn: 110286
* Add 'AnalysisContext::getUnoptimizedCFG()' to allow clients to get access to ↵Ted Kremenek2010-08-021-20/+33
| | | | | | | | the original CFG without any edges pruned out because of trivially solvable conditions (e.g., 'if (0)'). llvm-svn: 110085
* Make addStmt always add stmt. Delegate other cases to Visit() directly.Zhongxing Xu2010-06-031-6/+6
| | | | llvm-svn: 105384
* CFG: add all LHS of assingments as lvalue. This improves support for C++ ↵Zhongxing Xu2010-06-031-2/+15
| | | | | | reference. Patch by Jordy. llvm-svn: 105383
* Fix crash in CFG construction for 'break' statements appearing in statement ↵Ted Kremenek2010-05-211-7/+8
| | | | | | | | expressions within the increment code of a for loop. llvm-svn: 104375
* Don't add a null successor to a CFGBlock when the contents of an ↵Ted Kremenek2010-05-131-2/+1
| | | | | | | | @synchronized statement is empty. Fixes <rdar://problem/7979430>. llvm-svn: 103717
* Add null check in CFGBuilder::VisitStmt() to make CFG constructionTed Kremenek2010-04-301-0/+4
| | | | | | more resilient to bad code. llvm-svn: 102793
* Fix CFG crasher involving statement expressions reported in PR 6938.Ted Kremenek2010-04-291-2/+10
| | | | llvm-svn: 102576
* Use direct assignment instead of user defined conversion.Zhongxing Xu2010-04-141-3/+3
| | | | llvm-svn: 101236
* CFGBuilder: always add C++ member call expr as block-level expr.Zhongxing Xu2010-04-131-0/+13
| | | | llvm-svn: 101127
* Fix CFG bug where bases of member expressions were not always evaluated in a ↵Ted Kremenek2010-04-111-4/+24
| | | | | | lvalue context. Fixes <rdar://problem/7813989>. llvm-svn: 100966
* Fix bug in AddStmtChoice:asLValue() where 'AsLValueNotAlwaysAdd' would not ↵Ted Kremenek2010-04-111-1/+1
| | | | | | be treated as indicating an lvalue. llvm-svn: 100965
* Sort visitor methods. No functionality change.Ted Kremenek2010-04-111-5/+4
| | | | llvm-svn: 100964
* the big refactoring bits of PR3782.Rafael Espindola2010-03-301-1/+1
| | | | | | | | This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. llvm-svn: 99920
* Be a bit more consistent in using operator->Rafael Espindola2010-03-291-1/+1
| | | | | | | This patch moves some methods from QualType to Type and changes the users to use -> instead of . llvm-svn: 99805
* Simplify code a bit and remove unneeded semicolons.Benjamin Kramer2010-03-031-7/+4
| | | | llvm-svn: 97654
OpenPOWER on IntegriCloud