Ted Kremenek
491dc9f4a0
Added variation of the "Report" method in the class Diagnostic that takes
...
an optional DiagnosticClient argument that differs from the client stored
internally in the Diagnostic object.
llvm-svn: 48986
2008-03-31 18:23:15 +00:00
Ted Kremenek
9c7deb8d25
Disable timing diagnostics for GRSimpleVals.
...
llvm-svn: 48981
2008-03-31 16:00:32 +00:00
Ted Kremenek
f646774f32
Added path-sensitive check for return statements that return the address
...
of a stack variable. This is the path-sensitive version of a check that
is already done during semantic analysis.
llvm-svn: 48980
2008-03-31 15:02:58 +00:00
Chris Lattner
59a2594f3f
rename Decl::CompatibleAlias -> ObjCCompatibleAlias.
...
Fix objc ivar lookup. Ivar lookup should occur between lookup
of method-local values and lookup of globals. Emulate this with
some logic in the handling of Sema::ActOnIdentifierExpr.
Two todo's left:
1) sema shouldn't turn a bare reference to an ivar into "self->ivar"
in the AST. This is a hack.
2) The new ScopedDecl::isDefinedOutsideFunctionOrMethod method does
not correctly handle typedefs and enum constants yet.
llvm-svn: 48972
2008-03-31 00:36:02 +00:00
Chris Lattner
c00c35a857
some cleanups on top of David's patch. There are still two
...
remaining open issues I've communicated to him:
1) self can be assigned to, and his patch didn't handle it correctly.
2) CollectObjCIvarTypes is N^2 (because each subclass reprocesses
all parent class ivars) and flattens classes. If A derives from B,
and both have an int, I'd expect to get { {i32}, i32}, not { i32, i32}.
David, please review.
llvm-svn: 48970
2008-03-30 23:25:33 +00:00
Chris Lattner
4bd5596d08
Add initial support for objc codegen for methods, ivars, and the
...
etoile runtime, patch by David Chisnall!
llvm-svn: 48969
2008-03-30 23:03:07 +00:00
Steve Naroff
f9e7c90129
Only have the rewriter produce a file when there are no errors.
...
llvm-svn: 48926
2008-03-28 22:26:09 +00:00
Steve Naroff
0de4199ca0
Make sure Sema::ActOnClassMessage() correctly diagnoses "super".
...
llvm-svn: 48924
2008-03-28 21:37:05 +00:00
Ted Kremenek
c719424caa
Added skeleton checking for NSString's method initWithFormat: (do not pass nil). This won't be useful in most cases right now
...
because the analyzer isn't tracking expected types for an object, and [NSString alloc] just runs "id".
llvm-svn: 48917
2008-03-28 16:09:38 +00:00
Steve Naroff
60a9ef67e2
Add some of Ted's recent work to the VC++ project file.
...
Fix a couple bozo bugs in the rewriter.
llvm-svn: 48903
2008-03-27 22:59:54 +00:00
Steve Naroff
00a317694b
Collect all the preamble code and don't insert it until the end.
...
llvm-svn: 48899
2008-03-27 22:29:16 +00:00
Ted Kremenek
276278e5d2
Expanded NSString checking to check for nil for a few more methods.
...
llvm-svn: 48898
2008-03-27 22:05:32 +00:00
Ted Kremenek
2e4e7ccb22
Add line SourceLocation to NSString checks.
...
Added test case to test warning about passing 'nil' to NSString's compare: method.
llvm-svn: 48896
2008-03-27 21:23:57 +00:00
Ted Kremenek
27156c8c9f
Hooked up initial NSString interface checking to GRSimpleVals.
...
llvm-svn: 48895
2008-03-27 21:15:17 +00:00
Ted Kremenek
c8948c77f7
ProgramPoint is just a smart pointer; no reason to return a constant reference.
...
llvm-svn: 48891
2008-03-27 18:11:59 +00:00
Ted Kremenek
64b95a024e
Minor CSS tweaking (smaller h1 tags).
...
Bug fix in EscapeText (for std::string) where spaces were not properly emitted.
llvm-svn: 48889
2008-03-27 17:28:58 +00:00
Ted Kremenek
30560caa3d
For HTMLDiagnostics, when emitting the name of the directory, substitute the current working directory for "."
...
llvm-svn: 48888
2008-03-27 17:25:28 +00:00
Ted Kremenek
296b4c1bc6
Update Xcode project: add BasicObjCFoundationChecks.h
...
llvm-svn: 48887
2008-03-27 17:17:51 +00:00
Ted Kremenek
a4d60b6de3
Add creation of BasicObjCFoundationChecks when running GRSimpleVals from the driver.
...
llvm-svn: 48886
2008-03-27 17:17:22 +00:00
Ted Kremenek
f89469e392
Add default ctor implementation.
...
llvm-svn: 48885
2008-03-27 17:16:06 +00:00
Ted Kremenek
561dfe3153
Add html::EscapeText for std::string; use this function to escape text in message bubbles.
...
llvm-svn: 48884
2008-03-27 17:15:29 +00:00
Ted Kremenek
ed9f054a9c
Don't emit any timings for GRSimple if the CFG is not going to be built.
...
llvm-svn: 48882
2008-03-27 17:14:42 +00:00
Ted Kremenek
8d5491f40c
Output directory as well as file name.
...
llvm-svn: 48870
2008-03-27 07:39:04 +00:00
Ted Kremenek
8cc4842a76
Added <h3> tag in HTML file output that contains the name of the source file.
...
llvm-svn: 48869
2008-03-27 07:35:49 +00:00
Ted Kremenek
9b7843124e
Added AnnotatedPath.h, GRAuditor.h, GRSimpleAPICheck.h and BasicObjCFoundationChecks.cpp to Xcode project.
...
llvm-svn: 48868
2008-03-27 07:26:42 +00:00
Ted Kremenek
c04149299c
Added "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless checkers to be injected into the analyzer.
...
Added "AnnotatedPath" class to record an annotated path that will be useful for inspecting paths.
Added some boilerplate code for simple checks of Apple's Foundation API.
llvm-svn: 48867
2008-03-27 07:25:52 +00:00
Ted Kremenek
f6d2919a3e
Updated Xcode project with HTMLDiagnostics.[h,cpp]
...
llvm-svn: 48866
2008-03-27 06:18:34 +00:00
Ted Kremenek
6efb026623
Added "HTMLDiagnostic", a generic DiagnosticClient (that also implements PathDiagnostic)
...
so that all diagnostics can be piped to HTML files instead of as text diagnostics using --html-diags.
llvm-svn: 48865
2008-03-27 06:17:42 +00:00
Ted Kremenek
710714c365
PathDiagnosticPiece no longer contains a vector of strings; just one string.
...
PathDiagnostic no longer contains a diagnostic ID or diagnostic level.
llvm-svn: 48864
2008-03-27 06:16:40 +00:00
Ted Kremenek
c875201ee1
Fixed copy-paste error.
...
llvm-svn: 48863
2008-03-27 05:52:45 +00:00
Ted Kremenek
9c27b057da
Added PathDiagnostic.[h,cpp] to Xcode project.
...
llvm-svn: 48862
2008-03-27 03:50:10 +00:00
Ted Kremenek
4fa20c9bba
Added classes "PathDiagnosticPiece", "PathDiagnostic", and "PathDiagnosticClient", which encapsulate diagnostic reporting for paths.
...
llvm-svn: 48861
2008-03-27 03:49:32 +00:00
Ted Kremenek
afa66e246e
In ObjCMessageExpr: getSelector() const should just return "Selector", not "const Selector&" because Selector is just a smart pointer.
...
llvm-svn: 48860
2008-03-27 03:47:43 +00:00
Steve Naroff
c10c2e339f
Fix rewriter tests to work with new output file logic. This changes forces the output to standard out (rather than generate a .cpp file, which is the new default for the rewriter).
...
llvm-svn: 48847
2008-03-26 22:28:40 +00:00
Ted Kremenek
ea128437b3
Bug fix: use GetRVal instead of GetLVal (were getting the value of a DeclRefExpr, not it's address).
...
llvm-svn: 48846
2008-03-26 22:21:58 +00:00
Ted Kremenek
9dd6ddec63
Added test case for static analysis to warn about passing uninitialized values as arguments (not the receiver) in message expressions.
...
llvm-svn: 48845
2008-03-26 22:00:11 +00:00
Ted Kremenek
a1d9ed137a
Added test case for static analyzer to detect uses of uninitialized pointers as receivers in Objective-C message expressions.
...
Added test case directory "Analysis-Apple" which is only run on Apple (darwin) machines.
llvm-svn: 48844
2008-03-26 21:51:44 +00:00
Ted Kremenek
cb047289a8
Bug fix in transfer function for ObjCMessageExpr: Visit the receiver expression as an ordinary expression, not using VisitLVal.
...
llvm-svn: 48842
2008-03-26 21:36:08 +00:00
Steve Naroff
c06ee808d7
Alloc redeclaration of typedefs within ExternCSystemHeaderDir's AND SystemHeaderDir's.
...
llvm-svn: 48841
2008-03-26 21:27:00 +00:00
Nuno Lopes
623207d603
allow the format attribute to be specified in function pointer prototypes
...
# this is my first commit here, so please be gentle :)
llvm-svn: 48807
2008-03-25 23:01:48 +00:00
Ted Kremenek
5efdf8457f
Added hacked version of ccc script used to invoke the static analyzer. This
...
will gradually get pruned down, as it doesn't need to be as functional as
'ccc'.
llvm-svn: 48806
2008-03-25 22:35:32 +00:00
Nate Begeman
c506c78117
Extend QualType::getAddressSpace to do the right thing for array types, and in
...
the future, RecordTypes.
llvm-svn: 48784
2008-03-25 18:36:32 +00:00
Nate Begeman
03851eb91f
Add missing files
...
llvm-svn: 48783
2008-03-25 18:31:12 +00:00
Ted Kremenek
4b55badc39
GRSimple analysis now outputs additional diagnostic warnings about
...
passing an uninitialized value to a message expresion.
llvm-svn: 48776
2008-03-25 16:40:05 +00:00
Ted Kremenek
3335120f69
Tweak to transfer function for ObjCMessageExpr: handle both instance methods
...
and message expressions with a specified receiver.
llvm-svn: 48773
2008-03-25 16:07:41 +00:00
Ted Kremenek
945a246ad8
Added logic to check for uninitialized values as the receivers for message expressions
...
and uninitialized values passed-by-value as arguments to message expressions.
llvm-svn: 48760
2008-03-25 02:10:28 +00:00
Ted Kremenek
64100da427
Added initial transfer function support for ObjCMessageExpr.
...
llvm-svn: 48757
2008-03-25 00:34:37 +00:00
Ted Kremenek
7082a61074
Added "arg_iterators" to ObjCMessageExpr (for iterating over the arguments of a message expression)
...
llvm-svn: 48756
2008-03-25 00:16:48 +00:00
Ted Kremenek
b2f4d3138f
Minor CSS tweaking: use webkit style CSS properties for shadows/rounded edges
...
for message bubbles.
llvm-svn: 48754
2008-03-24 23:38:32 +00:00
Steve Naroff
65838bb2d5
Add a couple files to VC++ project and cleanup an "#if 0".
...
llvm-svn: 48748
2008-03-24 22:03:25 +00:00