| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
When object is allocated with alloc or init, we assume it cannot be a
subclass (currently used only for bifurcation purposes).
llvm-svn: 161682
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when we don't need to split.
In some cases we know that a method cannot have a different
implementation in a subclass:
- the class is declared in the main file (private)
- all the method declarations (including the ones coming from super
classes) are in the main file.
This can be improved further, but might be enough for the heuristic.
(When we are too aggressive splitting the state, efficiency suffers.
When we fail to split the state coverage might suffer.)
llvm-svn: 161681
|
| |
|
|
|
|
| |
to track locksets. This is in preparation for further changes.
llvm-svn: 161680
|
| |
|
|
| |
llvm-svn: 161676
|
| |
|
|
|
|
|
| |
function-try-block occuring in objc's implementation
block. wip.
llvm-svn: 161675
|
| |
|
|
| |
llvm-svn: 161673
|
| |
|
|
|
|
|
| |
member functions defined inside an objc class
implementation. wip.
llvm-svn: 161667
|
| |
|
|
| |
llvm-svn: 161660
|
| |
|
|
| |
llvm-svn: 161659
|
| |
|
|
| |
llvm-svn: 161656
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
things going on here that were problematic:
- We were missing the actual access check, or rather, it was suppressed
on account of being a redeclaration lookup.
- The access check would naturally happen during delay, which isn't
appropriate in this case.
- We weren't actually emitting dependent diagnostics associated with
class templates, which was unfortunate.
- Access was being propagated incorrectly for friend method declarations
that couldn't be matched at parse-time.
llvm-svn: 161652
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old behavior was to re-scan any files (like modules) where we may have
directives but won't actually be parsing during the -verify invocation.
Now, we keep the old behavior in Debug builds as a sanity check (though
modules are a known entity), and expect all legitimate directives to come
from comments seen by the preprocessor.
This also affects the ARC migration tool, which captures diagnostics in
order to filter some out. This change adds an explicit cleanup to
CaptureDiagnosticsConsumer in order to let its sub-consumer handle the
real end of diagnostics.
This was originally split into four patches, but the tests do not run
cleanly without all four, so I've combined them into one commit.
Patches by Andy Gibbs, with slight modifications from me.
llvm-svn: 161650
|
| |
|
|
|
|
| |
Patch by Andy Gibbs!
llvm-svn: 161649
|
| |
|
|
|
|
|
|
|
| |
This also provides isConst/Volatile/Restrict on FunctionTypes to coalesce
the implementation with other callers (& update those other callers).
Patch contributed by Sam Panzer (panzer@google.com).
llvm-svn: 161647
|
| |
|
|
| |
llvm-svn: 161642
|
| |
|
|
|
|
|
|
|
|
|
| |
Both methods need to clear out existing bindings and provide a new default
binding. Originally KillStruct always provided UnknownVal as the default,
but it's allowed symbolic values for quite some time (for handling returned
structs in C).
No functionality change.
llvm-svn: 161637
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This should speed up activities that need to access bindings by cluster,
such as invalidation and dead-bindings cleaning. In some cases all we save
is the cost of building the region cluster map, but other times we can
actually avoid traversing the rest of the store.
In casual testing, this produced a speedup of nearly 10% analyzing SQLite,
with /less/ memory used.
llvm-svn: 161636
|
| |
|
|
|
|
|
|
|
| |
This makes it faster to access and invalidate bindings with symbolic offsets
by only computing this information once.
No intended functionality change.
llvm-svn: 161635
|
| |
|
|
| |
llvm-svn: 161630
|
| |
|
|
|
|
| |
Should fix the failures seen on some linux builders.
llvm-svn: 161629
|
| |
|
|
| |
llvm-svn: 161622
|
| |
|
|
|
|
|
|
|
|
|
| |
An ASTContext's RecordLayoutInfo can only be used to look up offsets of
direct base classes, and we need the offset to make non-symbolic bindings
in RegionStore. This change makes sure that we have one layer of
CXXBaseObjectRegion for each base we are casting through.
This was causing crashes on an internal buildbot.
llvm-svn: 161621
|
| |
|
|
| |
llvm-svn: 161620
|
| |
|
|
| |
llvm-svn: 161619
|
| |
|
|
| |
llvm-svn: 161617
|
| |
|
|
| |
llvm-svn: 161616
|
| |
|
|
| |
llvm-svn: 161615
|
| |
|
|
| |
llvm-svn: 161614
|
| |
|
|
|
|
| |
standard reference and add a test.
llvm-svn: 161604
|
| |
|
|
|
|
|
|
| |
r161552.
As per Jordan's feedback.
llvm-svn: 161603
|
| |
|
|
|
|
| |
as their argument. For example, \fn, \function, \typedef, \method, \class etc.
llvm-svn: 161601
|
| |
|
|
| |
llvm-svn: 161595
|
| |
|
|
|
|
| |
definition parsing logic.
llvm-svn: 161593
|
| |
|
|
|
|
| |
Declaring "const Decl *Decl" is not a good idea.
llvm-svn: 161567
|
| |
|
|
|
|
|
| |
Remove Escaped state, which is not really necessary. We can just stop
tracking the symbol instead of keeping it around and marking escaped.
llvm-svn: 161557
|
| |
|
|
|
|
| |
from before r159168. PR13562.
llvm-svn: 161554
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is an initial (unoptimized) version. We split the path when
inlining ObjC instance methods. On one branch we always assume that the
type information for the given memory region is precise. On the other we
assume that we don't have the exact type info. It is important to check
since the class could be subclassed and the method can be overridden. If
we always inline we can loose coverage.
Had to refactor some of the call eval functions.
llvm-svn: 161552
|
| |
|
|
| |
llvm-svn: 161551
|
| |
|
|
| |
llvm-svn: 161548
|
| |
|
|
| |
llvm-svn: 161546
|
| |
|
|
| |
llvm-svn: 161544
|
| |
|
|
|
|
|
| |
method/c-funcs defined in objc class implementation.
No intended functionality change.
llvm-svn: 161540
|
| |
|
|
| |
llvm-svn: 161539
|
| |
|
|
| |
llvm-svn: 161537
|
| |
|
|
|
|
| |
properties/ivars. <rdar://problem/6642337>.
llvm-svn: 161534
|
| |
|
|
|
|
| |
just to account for us emitting notes more consistently.
llvm-svn: 161528
|
| |
|
|
| |
llvm-svn: 161527
|
| |
|
|
| |
llvm-svn: 161526
|
| |
|
|
|
|
|
|
|
| |
We handled the builtin version of this function in r157968, but the builtin
isn't used when compiling as -fno-constant-cfstrings.
This should complete <rdar://problem/6157200>.
llvm-svn: 161525
|
| |
|
|
|
|
| |
only machine specific clobbers are modeled.
llvm-svn: 161524
|