| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 57788
|
|
|
|
|
|
| |
when ObjC is turned on.
llvm-svn: 57787
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Support noreturn on function-typed variables.
- Extend isFunctionOrMethod to return true for K&R functions and
provide hasFunctionProto to check if a decl has information about
its arguments. This code needs some serious cleaning, but works.
- Add/improve test cases for noreturn and unused.
llvm-svn: 57778
|
|
|
|
|
|
| |
crash report in PR 2796.
llvm-svn: 57777
|
|
|
|
|
|
| |
Patch by Timo Sirainen!
llvm-svn: 57772
|
|
|
|
|
|
| |
for Obj-C methods.
llvm-svn: 57769
|
|
|
|
|
|
| |
aggregate temporaries, so can many other expressions.
llvm-svn: 57761
|
|
|
|
|
|
| |
if they return a structure. E.g foo().x == 1. We don't really support, however, such temporaries yet in the environment or the store.
llvm-svn: 57760
|
|
|
|
|
|
| |
binding it to the store and the store doesn't support that binding (i.e., it cannot track it). This has the nice feature that the checker will automatically get more powerful if we use a more powerful store model.
llvm-svn: 57755
|
|
|
|
|
|
| |
"Visit" when processing the base for "x->f" field accesses.
llvm-svn: 57754
|
|
|
|
| |
llvm-svn: 57751
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 57746
|
|
|
|
| |
llvm-svn: 57745
|
|
|
|
| |
llvm-svn: 57743
|
|
|
|
|
|
|
|
| |
restores null dereference checking with array accesses.
BasicStore::RemoveDeadBindings: handle regions besides VarRegions (we now have FieldRegions).
llvm-svn: 57741
|
|
|
|
|
|
| |
that represent an entire struct. We need to implement struct temporaries as an actual "region", and then bind symbols to the FieldRegion of those temporaries.
llvm-svn: 57739
|
|
|
|
|
|
|
| |
- Shouldn't assume predefined expr is a function printing one.
- Uses CGM functionality to cache function names per module.
llvm-svn: 57737
|
|
|
|
|
|
|
| |
(first) global holding the string.
- No functionality change.
llvm-svn: 57736
|
|
|
|
| |
llvm-svn: 57731
|
|
|
|
|
|
| |
regions and symbolic regions. When assuming whether or not a location is non-null, walk up the region hierarchy until we hit a symbolic region (and test it for null). This may not be the end all solution, as the notion of what a "symbolic region" is really belongs in the specific subclass of StoreManager.
llvm-svn: 57730
|
|
|
|
| |
llvm-svn: 57724
|
|
|
|
|
|
| |
assert.
llvm-svn: 57721
|
|
|
|
|
|
| |
PostStmtKind was used instead of a PostStoreKind.
llvm-svn: 57719
|
|
|
|
|
|
|
|
|
| |
- Added new region "SymbolicRegion", which maps symbol values to the region domain.
- Enhanced BasicStore::getFieldLValue() to return a FieldRegion (using SymbolicRegion)
- Added some utility methods to GRState for fetch svals from the store.
- Fixed regression in CheckNSError (we weren't getting the value bound to the parameter)
llvm-svn: 57717
|
|
|
|
| |
llvm-svn: 57716
|
|
|
|
|
|
| |
a bandid; we need to properly handle properties by using locv/nonloc objects and specially handling property assignments in the transfer function for BinaryOperator.
llvm-svn: 57693
|
|
|
|
|
|
|
| |
- Encode unions and bit-fields correctly.
- Accept option to name record fields (used for NeXT runtime).
llvm-svn: 57685
|
|
|
|
|
|
|
|
|
| |
simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.
llvm-svn: 57684
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Mechanism for detecting if a structure should be expanded wasn't
reliable. Simplified by just keeping track of what we should be
expanding.
- This fixes a bug in using NSInvocation to invoke a method which
returned a structure, which in used by Key Value Observing, which
in the end, caused a miscompile in poor little Sketch.
llvm-svn: 57675
|
|
|
|
| |
llvm-svn: 57674
|
|
|
|
|
|
|
|
|
|
| |
RVal => SVal
LVal => Loc
NonLVal => NonLoc
lval => loc
nonlval => nonloc
llvm-svn: 57671
|
|
|
|
|
|
| |
floating point. This is only correct for x86-32 at the moment.
llvm-svn: 57667
|
|
|
|
| |
llvm-svn: 57666
|
|
|
|
|
|
| |
type T.
llvm-svn: 57665
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
struct s {};
void f() {
int a[10];
int (*p)[10];
p = &a;
(*p)[3] =1;
struct s d;
struct s *q;
q = &d;
}
We return the corresponding MemRegionVal for them.
llvm-svn: 57664
|
|
|
|
|
|
|
|
|
|
| |
structure.
- I'm not sure yet about the behavior, but this at least prevents the
crash.
Add some asserts on RegionStack usage.
llvm-svn: 57661
|
|
|
|
|
|
| |
and lvalue contexts.
llvm-svn: 57659
|
|
|
|
|
|
|
|
|
|
|
| |
regions.
Remove GRExprEngine::getLVal and RValues::MakeVal.
Enhance StoreManager "GetLValue" methods to dispatch for specific kinds of lvalue queries, as opposed to interogating the expression tree (GRExprEngine already does this).
Added FIXMEs. In particular, we no longer "assume" that a base pointer in a field/array access is null (this logic was removed). Perhaps we should do this when fetching the lvalue for fields and array elements?
llvm-svn: 57657
|
|
|
|
| |
llvm-svn: 57654
|
|
|
|
| |
llvm-svn: 57646
|
|
|
|
| |
llvm-svn: 57645
|
|
|
|
|
|
|
|
| |
- Disables the freeing of the ASTContext and the TranslationUnit
after parsing & sema.
- Primarily for timing the impact on -fsyntax-only timings.
llvm-svn: 57643
|
|
|
|
| |
llvm-svn: 57642
|
|
|
|
|
|
|
|
|
| |
not match type of ivar
and
http://llvm.org/bugs/show_bug.cgi?id=2893
llvm-svn: 57640
|
|
|
|
|
|
|
| |
- Implement fast path when value easily fits in a uint64.
- ~6x faster, translates to 1-2% on Cocoa.h
llvm-svn: 57632
|
|
|
|
| |
llvm-svn: 57629
|
|
|
|
|
|
|
|
| |
new VisitLValue method is added to replace the old VisitLVal. The semantics
model becomes more explicit to separate rvalue evaluation from lvalue
evaluation.
llvm-svn: 57627
|
|
|
|
|
|
|
|
| |
floats.
- With testcase, which also has some other things GCC folds but we
don't commented out in it.
llvm-svn: 57624
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is to encode the state of the #pragma pack stack as an attribute when
the structure is declared.
- Extend PackedAttr to take an alignment (in bits), and reuse for
both __attribute__((packed)) (which takes no argument, instead
packing tightly (to "minimize the memory required") and for #pragma
pack (which allows specification of the maximum alignment in
bytes). __attribute__((packed)) is just encoded as Alignment=1.
This conflates two related but different mechanisms, but it didn't
seem worth another attribute.
- I have attempted to follow the MSVC semantics as opposed to the gcc
ones, since if I understand correctly #pragma pack originated with
MSVC. The semantics are generally equivalent except when the stack
is altered during the definition of a structure; its not clear if
anyone does this in practice. See testcase if curious.
llvm-svn: 57623
|
|
|
|
|
|
|
|
| |
a direct initializer for a variable defition).
Idea originated from here: http://thread.gmane.org/gmane.comp.gcc.devel/101524
llvm-svn: 57609
|