- Oct 21, 2008
-
-
Ted Kremenek authored
Further improve path-sensitivity with divide-by-zero checking by assuming that a denominator cannot be zero even when the result of an '/' or '%' expression is unknown. llvm-svn: 57855
-
Ted Kremenek authored
Used conjured symbols to recover path-sensitivity when the result of a compound assignment is UnknownVal(). llvm-svn: 57851
-
-
- Oct 20, 2008
-
-
Steve Naroff authored
Sema::CheckCompareOperands() and ASTContext::mergeTypes(): Change handling of ObjC qualified id types to be consistent with gcc. This changes a handful of test case errors into warnings (diff will tell you which cases have changed). llvm-svn: 57841
-
Chris Lattner authored
strcmp when needed. llvm-svn: 57817
-
Chris Lattner authored
llvm-svn: 57816
-
Chris Lattner authored
llvm-svn: 57815
-
Chris Lattner authored
llvm-svn: 57814
-
Chris Lattner authored
llvm-svn: 57813
-
Chris Lattner authored
weird errors about property attributes being unknown. llvm-svn: 57812
-
Chris Lattner authored
crash.m:8:12: error: type name requires a specifier or qualifier @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:29: error: expected ';' at end of declaration list @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:39: error: expected identifier or '(' @property (readonlyx, getter=isAwesome) int _awesome; ^ we now get: crash.m:8:12: error: unknown property attribute 'readonlyx' @property (readonlyx, getter=isAwesome) int _awesome; ^ Also, we can eliminate isObjCPropertyAttribute now. llvm-svn: 57811
-
Chris Lattner authored
ParseObjCPropertyAttribute. Before, on this code (where a comma was forgotten): @property (readonly getter=isAwesome) int _awesome; we emitted: crash.m:9:11: error: expected ')' @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:37: error: type name requires a specifier or qualifier @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:37: error: expected identifier or '(' crash.m:9:37: error: expected ';' at end of declaration list crash.m:9:1: error: @property requires fields to be named @property (readonly getter=isAwesome) int _awesome; ^ now we emit: crash.m:9:21: error: expected ')' @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:11: error: to match this '(' @property (readonly getter=isAwesome) int _awesome; ^ llvm-svn: 57809
-
Chris Lattner authored
llvm-svn: 57807
-
Chris Lattner authored
llvm-svn: 57806
-
Chris Lattner authored
@property (readonly) int : 4; llvm-svn: 57805
-
Chris Lattner authored
occurs, skip to an @ or ; instead of to a } or ;. Properties don't necessarily live in {}'s. llvm-svn: 57804
-
Chris Lattner authored
Check for @end in ParseObjCInterfaceDeclList instead of in each caller Handle @required and @optional with the same code Add some fixmes about some apparently objc2 code that is being accepted in objc1. llvm-svn: 57803
-
Chris Lattner authored
where it would reject @required in non-protocols, but then go ahead and tag methods with required anyway. Instead, if we see this in something other than a protocol, just ignore the request. Also, improve error recovery a bit when we see something bogus inside an interface. llvm-svn: 57798
-
Chris Lattner authored
to make it easier to understand. No functionality change. llvm-svn: 57797
-
rdar://6257721Chris Lattner authored
move it to its own predicate to make it more clear. llvm-svn: 57796
-
Chris Lattner authored
can't stick an attributes? llvm-svn: 57795
-
Chris Lattner authored
of whether a '(' was a grouping paren or the start of a function declarator. This is PR2796. Now we eat the attribute before deciding whether the paren is grouping or not, then apply it to the resultant decl or to the first argument as needed. One somewhat surprising aspect of this is that attributes interact with implicit int in cases like this: void a(x, y) // k&r style function void b(__attribute__(()) x, y); // function with two implicit int arguments void c(x, __attribute__(()) y); // error, can't have attr in identifier list. Fun stuff. llvm-svn: 57790
-
Chris Lattner authored
llvm-svn: 57789
-
Chris Lattner authored
llvm-svn: 57788
-
Chris Lattner authored
when ObjC is turned on. llvm-svn: 57787
-
- Oct 19, 2008
-
-
Daniel Dunbar authored
- 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
-
Ted Kremenek authored
llvm-svn: 57777
-
- Oct 18, 2008
-
-
Ted Kremenek authored
Patch by Timo Sirainen! llvm-svn: 57772
-
Daniel Dunbar authored
for Obj-C methods. llvm-svn: 57769
-
Ted Kremenek authored
Generalize VisitLValue: not only can CallExprs and ObjCMessageExprs return aggregate temporaries, so can many other expressions. llvm-svn: 57761
-
Ted Kremenek authored
Function calls and ObjC message expressions can be used in a lvalue context 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
-
Ted Kremenek authored
retain/release checker: Check if a tracked value escapes if we also try 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
-
Ted Kremenek authored
Use "VisitLValue" when processing the base for "x.f" field accesses, and "Visit" when processing the base for "x->f" field accesses. llvm-svn: 57754
-
Mon P Wang authored
llvm-svn: 57751
-
Argyrios Kyrtzidis authored
No functionality change. llvm-svn: 57746
-
Daniel Dunbar authored
llvm-svn: 57745
-
Daniel Dunbar authored
llvm-svn: 57743
-
Ted Kremenek authored
Hack: have BasicStore::getLValueElement return the "Base" lvalue. This restores null dereference checking with array accesses. BasicStore::RemoveDeadBindings: handle regions besides VarRegions (we now have FieldRegions). llvm-svn: 57741
-
Ted Kremenek authored
When conjuring symbols to recover path-sensitivity, don't conjure symbols 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
-
- Oct 17, 2008
-
-
Daniel Dunbar authored
- Shouldn't assume predefined expr is a function printing one. - Uses CGM functionality to cache function names per module. llvm-svn: 57737
-