| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 209847
|
|
|
|
|
|
| |
local contexts. Also includes some minor refactoring.
llvm-svn: 209774
|
|
|
|
| |
llvm-svn: 209727
|
|
|
|
|
|
| |
be performed by using Decl::isInStdNamespace or DeclContext::isStdNamespace
llvm-svn: 209708
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change is a precondition to the proposed change to handle temporary
dtors correctly.
The idea is to explicitly search for the next return that doesn't have other
paths into it (that is, if the current block is dead, the block containing the
return must be dead, too). Thus, introducing non-control-flow block
transitions will not break the logic.
llvm-svn: 209531
|
|
|
|
|
|
|
|
|
|
|
| |
This catches issues like:
if ((x & 8) == 4) { ... }
if ((x | 4) != 3) { ... }
Patch by Anders Rönnholm!
llvm-svn: 209221
|
|
|
|
| |
llvm-svn: 209191
|
|
|
|
|
|
| |
This fills in a few missing gaps in functionality.
llvm-svn: 208830
|
|
|
|
|
|
| |
changes intended.
llvm-svn: 208810
|
|
|
|
| |
llvm-svn: 208800
|
|
|
|
|
|
| |
changes intended.
llvm-svn: 208783
|
|
|
|
| |
llvm-svn: 208774
|
|
|
|
|
|
| |
yet, and fixes a dead code warning.
llvm-svn: 208440
|
|
|
|
|
|
|
|
|
|
| |
is to allow requirements to be expressed not just in terms of lists, but in terms of logical expressions. Eg)
void foo(void) __attribute__((requires_capability((FlightControl || Worker) && !Logger)));
This is WIP code.
llvm-svn: 208439
|
|
|
|
|
|
|
|
|
|
|
| |
The thread safety analysis isn't very useful in ObjC (you can't annotate
ObjC classes or methods) but we can still analyze the actual code and
show violations in usage of C/C++ functions.
Fixes PR19541, which does not use thread safety attributes but crashes
with -Weverything.
llvm-svn: 208436
|
|
|
|
|
|
|
| |
This makes the consumed analysis less dependent on the CFG layout and fixes
a bug where we wouldn't warn on an unconsumed value.
llvm-svn: 208300
|
|
|
|
|
|
|
|
| |
The assignment needs to be before the destruction of the temporary.
This patch calls out to addStmt, which invokes VisitDeclStmt, which has
all the correct logic for handling temporaries.
llvm-svn: 207985
|
|
|
|
| |
llvm-svn: 207870
|
|
|
|
| |
llvm-svn: 207854
|
|
|
|
|
|
| |
range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
llvm-svn: 207837
|
|
|
|
|
|
| |
No functional changes intended.
llvm-svn: 207836
|
|
|
|
| |
llvm-svn: 207573
|
|
|
|
| |
llvm-svn: 207422
|
|
|
|
| |
llvm-svn: 207416
|
|
|
|
| |
llvm-svn: 206986
|
|
|
|
|
|
| |
static since this function is file-local. No functional changes intended.
llvm-svn: 206982
|
|
|
|
| |
llvm-svn: 206907
|
|
|
|
| |
llvm-svn: 206899
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
function parameters, and compound assignment.
llvm-svn: 206827
|
|
|
|
| |
llvm-svn: 206681
|
|
|
|
| |
llvm-svn: 206676
|
|
|
|
|
|
| |
changes.
llvm-svn: 206590
|
|
|
|
|
|
| |
more const-correctness, and now uses some range-based for loops. No functional changes intended.
llvm-svn: 206503
|
|
|
|
|
|
| |
exitCFG function instead of the destructor to ensure proper pairing. This allows reuse of the builder without creating a memory leak.
llvm-svn: 206471
|
|
|
|
|
|
|
|
| |
implicit casts in C++.
Fixes <rdar://problem/16631033>.
llvm-svn: 206360
|
|
|
|
|
|
|
| |
traversal system. The new pass is still undergoing testing; no change in
functionality.
llvm-svn: 206338
|
|
|
|
| |
llvm-svn: 206234
|
|
|
|
|
|
| |
diagnostics which caused delayed diagnostics on dead paths to be emitted.
llvm-svn: 206232
|
|
|
|
|
|
| |
functionality.
llvm-svn: 205936
|
|
|
|
| |
llvm-svn: 205929
|
|
|
|
|
|
|
|
|
|
|
|
| |
changes. No functional changes intended.
* Adds an iterator_range interface to CallExpr to get the arguments
* Modifies SExpr such that it must be allocated in the Arena, and cannot be deleted
* Minor const-correctness and nullptr updates
* Adds some operator!= implementations to complement operator==
* Removes unused functionality
llvm-svn: 205915
|
|
|
|
|
|
| |
by Aaron Ballman.
llvm-svn: 205809
|
|
|
|
|
|
| |
Implemented ownership policy, updated to use nullptr, const-cleanup.
llvm-svn: 205745
|
|
|
|
|
|
|
|
|
|
| |
This patch is the first part of a significant refactoring that seeks to restore
sanity to way thread safety analysis deals with capability expressions. The
current patch merely provides an outline of the structure of the new system.
It's not yet connected to the actual analysis, so there's no change in
functionality.
llvm-svn: 205728
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which warns on compound conditionals that always evaluate to the same value.
For instance, (x > 5 && x < 3) will always be false since no value for x can
satisfy both conditions.
This patch also changes the CFG to use these tautological values for better
branch analysis. The test for -Wunreachable-code shows how this change catches
additional dead code.
Patch by Anders Rönnholm.
llvm-svn: 205665
|
|
|
|
|
|
| |
Instead of using terminology such as "lock", "unlock" and "locked", the new terminology is "acquire", "release" and "held". Additionally, the capability attribute's name argument is now reported as part of the diagnostic, instead of hard coding as "mutex."
llvm-svn: 205359
|
|
|
|
|
|
|
|
|
| |
Also, add several destructor-related tests. Most of them don't work yet, but it's
good to have them recorded.
Patch by Alex McCarthy!
llvm-svn: 205326
|
|
|
|
| |
llvm-svn: 205074
|