summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core
Commit message (Collapse)AuthorAgeFilesLines
...
* [OPENMP] Initial parsing and sema analysis for 'flush' directive.Alexey Bataev2014-07-211-0/+1
| | | | llvm-svn: 213512
* [OPENMP] Parsing/Sema of the OpenMP directive 'critical'.Alexander Musman2014-07-211-0/+1
| | | | llvm-svn: 213510
* [OPENMP] Initial parsing and sema analysis for 'taskwait' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213363
* [OPENMP] Initial parsing and sema analysis for 'barrier' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213360
* [OPENMP] Initial parsing and sema analysis of 'taskyield' directive.Alexey Bataev2014-07-181-0/+1
| | | | llvm-svn: 213355
* [OPENMP] Parsing/Sema analysis of directive 'master'Alexander Musman2014-07-171-0/+1
| | | | llvm-svn: 213237
* Make clang's rewrite engine a core featureAlp Toker2014-07-161-1/+1
| | | | | | | | | | | | | | | The rewrite facility's footprint is small so it's not worth going to these lengths to support disabling at configure time, particularly since key compiler features now depend on it. Meanwhile the Objective-C rewriters have been moved under the ENABLE_CLANG_ARCMT umbrella for now as they're comparatively heavy and still potentially worth excluding from lightweight builds. Tests are now passing with any combination of feature flags. The flags historically haven't been tested by LLVM's build servers so caveat emptor. llvm-svn: 213171
* [OPENMP] Parsing and sema analysis for 'omp task' directive.Alexey Bataev2014-07-111-0/+1
| | | | llvm-svn: 212804
* [OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.Alexey Bataev2014-07-081-0/+1
| | | | llvm-svn: 212516
* [OPENMP] Added initial support for 'omp parallel for'.Alexey Bataev2014-07-071-0/+1
| | | | llvm-svn: 212453
* StaticAnalyzer: Silence a warningDavid Majnemer2014-07-071-0/+1
| | | | | | | ExprEngine wasn't ready for SEHLeaveStmtClass. Handle it like all the other SEH constructs by aborting. llvm-svn: 212436
* PlistSupport.h: avoid gcc 'defined but not used' warningAlp Toker2014-07-061-2/+1
| | | | llvm-svn: 212396
* Modernize a couple of loopsAlp Toker2014-07-061-5/+2
| | | | llvm-svn: 212394
* Use PlistSupport in a few more placesAlp Toker2014-07-061-2/+2
| | | | | | Switch over LogDiagnosticPrinter and introduce an integer helper. llvm-svn: 212384
* Track IntrusiveRefCntPtr::get() changes from LLVM r212366Alp Toker2014-07-055-19/+19
| | | | llvm-svn: 212369
* Remove llvm:: from uses of ArrayRef.Craig Topper2014-06-281-1/+1
| | | | llvm-svn: 211987
* Do not inline methods of C++ containers (coming from headers).Anna Zaks2014-06-272-15/+13
| | | | | | | | | | | | | | | | | | | This silences false positives (leaks, use of uninitialized value) in simple code that uses containers such as std::vector and std::list. The analyzer cannot reason about the internal invariances of those data structures which leads to false positives. Until we come up with a better solution to that problem, let's just not inline the methods of the containers and allow objects to escape whenever such methods are called. This just extends an already existing flag "c++-container-inlining" and applies the heuristic not only to constructors and destructors of the containers, but to all of their methods. We have a bunch of distinct user reports all related to this issue (radar://16058651, radar://16580751, radar://16384286, radar://16795491 [PR19637]). llvm-svn: 211832
* [OPENMP] Initial parsing and sema analysis for 'single' directive.Alexey Bataev2014-06-261-0/+1
| | | | llvm-svn: 211774
* [OPENMP] Initial parsing and sema analysis for 'section' directive.Alexey Bataev2014-06-261-0/+1
| | | | llvm-svn: 211767
* [OPENMP] Initial support for 'sections' directive.Alexey Bataev2014-06-251-0/+1
| | | | llvm-svn: 211685
* StaticAnalyzer: Switch a loop to a range-based forDavid Majnemer2014-06-231-3/+2
| | | | | | Merely a code simplification, no functionality change. llvm-svn: 211484
* [analyzer] Don't create new PostStmt nodes if we don't have to.Jordan Rose2014-06-181-1/+1
| | | | | | | | Doing this caused us to mistakenly think we'd seen a particular state before when we actually hadn't, which resulted in false negatives. Credit to Rafael Auler for discovering this issue! llvm-svn: 211209
* [OPENMP] Initial support for '#pragma omp for' (fixed incompatibility with ↵Alexey Bataev2014-06-181-0/+1
| | | | | | MSVC). llvm-svn: 211140
* Revert "[OPENMP] Initial support for '#pragma omp for'."Rafael Espindola2014-06-171-1/+0
| | | | | | | | This reverts commit r211096. Looks like it broke the msvc build: SemaOpenMP.cpp(140) : error C4519: default template arguments are only allowed on a class template llvm-svn: 211113
* [OPENMP] Initial support for '#pragma omp for'.Alexey Bataev2014-06-171-0/+1
| | | | llvm-svn: 211096
* One of our buildbot for FreeBSD does not support std::to_string.Sylvestre Ledru2014-06-141-6/+8
| | | | | | Use stringstream instead to convert int to string llvm-svn: 210972
* List the function/method name in the index page of scan-buildSylvestre Ledru2014-06-141-0/+4
| | | | llvm-svn: 210971
* With the option '-analyzer-config stable-report-filename=true',Sylvestre Ledru2014-06-142-16/+76
| | | | | | | | instead of report-XXXXXX.html, scan-build/clang analyzer generate report-<filename>-<function, method name>-<function position>-<id>.html. (id = i++ for several issues found in the same function/method) llvm-svn: 210970
* Replace llvm::error_code with std::error_code.Rafael Espindola2014-06-121-2/+2
| | | | llvm-svn: 210780
* Removing an "if (this == nullptr)" check from two print methods. The conditionRichard Trieu2014-06-093-2/+7
| | | | | | | will never be true in a well-defined context. The checking for null pointers has been moved into the caller logic so it does not rely on undefined behavior. llvm-svn: 210498
* Don't assume an implicit IntrusiveRefCntPtr -> bool operator.Rafael Espindola2014-06-031-1/+1
| | | | llvm-svn: 210075
* Move the logic for testing for namespace std into one location. This check canRichard Trieu2014-05-282-3/+3
| | | | | | be performed by using Decl::isInStdNamespace or DeclContext::isStdNamespace llvm-svn: 209708
* [C++11] Use 'nullptr'. StaticAnalyzer edition.Craig Topper2014-05-2727-288/+297
| | | | llvm-svn: 209642
* revert "r209526 List the function/method name in the index page of scan-build "Sylvestre Ledru2014-05-231-4/+0
| | | | | | Depends on http://reviews.llvm.org/D3762 llvm-svn: 209527
* List the function/method name in the index page of scan-build Sylvestre Ledru2014-05-231-0/+4
| | | | llvm-svn: 209526
* Silence warning in Release builds. This function is only used in an assert.Benjamin Kramer2014-05-111-0/+2
| | | | llvm-svn: 208491
* Analyzer: Make helper function static.Benjamin Kramer2014-05-101-1/+1
| | | | llvm-svn: 208473
* Decouple ExprCXX.h and DeclCXX.h and clean up includes a bit.Benjamin Kramer2014-05-101-0/+1
| | | | | | | Required pulling LambdaExpr::Capture into its own header. No functionality change. llvm-svn: 208470
* [analyzer] Functions marked __attribute__((const)) don't modify any memory.Jordan Rose2014-05-071-0/+5
| | | | | | | | | This applies to __attribute__((pure)) as well, but 'const' is more interesting because many of our builtins are marked 'const'. PR19661 llvm-svn: 208154
* Fix crash when resolving branch conditions for temporary destructor ↵Manuel Klimek2014-05-051-12/+34
| | | | | | | | | | | | | | | | | | | | condition blocks. Document and simplify ResolveCondition. 1. Introduce a temporary special case for temporary desctructors when resolving the branch condition - in an upcoming patch, alexmc will change temporary destructor conditions to not run through this logic, in which case we can remove this (marked as FIXME); this currently fixes a crash. 2. Simplify ResolveCondition; while documenting the function, I noticed that it always returns the last statement - either that statement is the condition itself (in which case the condition was returned anyway), or the rightmost leaf is returned; for correctness, the rightmost leaf must be evaluated anyway (which the CFG does in the last statement), thus we can just return the last statement in that case, too. Added an assert to verify the invariant. llvm-svn: 207957
* [leaks] The PDFileEntry nodes in the FilesMade FoldingSet containChandler Carruth2014-05-031-0/+5
| | | | | | | | a std::vector that allocates on the heap. As a consequence, we have to run all of their destructors when tearing down the set, not just deallocate the memory blobs. llvm-svn: 207902
* [analyzer] Don't assert when combining using .* on a temporary.Jordan Rose2014-04-291-0/+6
| | | | | | | | | | | | | While we don't model pointer-to-member operators yet (neither .* nor ->*), CallAndMessageChecker still checks to make sure the 'this' object is not null or undefined first. However, it also expects that the object should always have a valid MemRegion, something that's generally important elsewhere in the analyzer as well. Ensure this is true ahead of time, just like we do for member access. PR19531 llvm-svn: 207561
* [analyzer] Don't crash when a construction is followed by an uninitialized ↵Jordan Rose2014-04-291-1/+1
| | | | | | | | | | variable. This could happen due to unfortunate CFG coincidences. PR19579 llvm-svn: 207486
* [analyzer] Fix a leak found by LSan.Jordan Rose2014-04-231-4/+4
| | | | | | PR19524 llvm-svn: 207001
* [Modules] Fix potential ODR violations by sinking the DEBUG_TYPEChandler Carruth2014-04-224-8/+8
| | | | | | | | | | definition below all of the header #include lines, clang edition. If you want more details about this, you can see some of the commits to Debug.h in LLVM recently. This is just the clang section of a cleanup I've done for all uses of DEBUG_TYPE in LLVM. llvm-svn: 206849
* [analyzer] Look through temporary destructors when finding a region to ↵Jordan Rose2014-04-051-2/+10
| | | | | | | | | | | | construct. Fixes a false positive when temporary destructors are enabled where a temporary is destroyed after a variable is constructed but before the VarDecl itself is processed, which occurs when the variable is in the condition of an if or while. Patch by Alex McCarthy, with an extra test from me. llvm-svn: 205661
* [analyzer] Extract a helper for finding the target region for a C++ constructor.Jordan Rose2014-04-011-56/+65
| | | | | | | | No functionality change. Patch by Alex McCarthy! llvm-svn: 205328
* [analyzer] Remove incorrect workaround for unimplemented temporary destructors.Jordan Rose2014-04-011-6/+0
| | | | | | | | | | If we're trying to get the zero element region of something that's not a region, we should be returning UnknownVal, which is what ProgramState::getLValue will do for us. Patch by Alex McCarthy! llvm-svn: 205327
* Remove dead assignment dominated by a call to llvm_unreachable().Ted Kremenek2014-03-201-1/+0
| | | | llvm-svn: 204375
* [analyzer] Fix a bad bug in reversePropagateInterstingSymbols() where only ↵Ted Kremenek2014-03-201-1/+1
| | | | | | one subexpression of BinaryOperator would be explored. llvm-svn: 204374
OpenPOWER on IntegriCloud