summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* properly handle array decay in objc message exprs.Chris Lattner2008-04-021-4/+4
| | | | llvm-svn: 49098
* Two changes to Sema::LookupDecl() interface. Steve Naroff2008-04-026-53/+33
| | | | | | | | | | | (1) Remove IdLoc (it's never used). (2) Add a bool to enable/disable lazy builtin creaation (defaults to true). This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit. To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness. llvm-svn: 49087
* Beginning of some cleanups; start generating path diagnostics using objectsTed Kremenek2008-04-021-119/+152
| | | | | | that describe a bug. llvm-svn: 49086
* Various parts of the standard require something to be an "incomplete or Chris Lattner2008-04-022-14/+13
| | | | | | | | object type". Add a predicate that checks exactly this, as it is equivalent to checking ot see if the type is *not* a function type, which is faster to check. llvm-svn: 49082
* 1) Enforce C99 6.7.3p2: "Types other than pointer types derived fromChris Lattner2008-04-021-9/+80
| | | | | | | | | | | | | | object or incomplete types shall not be restrict-qualified." 2) Warn about qualifiers on function types: C99 6.7.3p8: "If the specification of a function type includes any type qualifiers, the behavior is undefined." 3) Implement restrict on C++ references. 4) fix some locations for various C++ reference diagnostics. llvm-svn: 49081
* Add a citation.Chris Lattner2008-04-021-1/+3
| | | | llvm-svn: 49080
* Fix several bugs in array -> pointer decomposition.Chris Lattner2008-04-024-23/+76
| | | | | | | | | | | | | | | | First, we got several CVR propagation cases wrong, which Eli pointed out in PR2039. Second, we didn't propagate address space qualifiers correctly, leading to incorrect lowering of code in CodeGen/address-space.c. Third, we didn't uniformly propagate the specifier in the array to the pointer ("int[restrict 4]" -> "int *restrict"). This adds an ASTContext::getArrayDecayedType member that handles the non-trivial logic for this seemingly simple operation. llvm-svn: 49078
* Added initial hacked support for display path diagnostics withTed Kremenek2008-04-021-3/+107
| | | | | | GRSimpleVals warnings. Cleaning up, but now we get multiple bubbles (branches are annotated). llvm-svn: 49077
* remove blank line.Chris Lattner2008-04-021-1/+0
| | | | llvm-svn: 49075
* print cvr qualifiers on simplified typedefsChris Lattner2008-04-021-2/+5
| | | | llvm-svn: 49074
* rename some variables, fix 80 col violation. No Chris Lattner2008-04-021-47/+48
| | | | | | functionality change. llvm-svn: 49072
* Fix PR2017 and silence some bogus errors.Chris Lattner2008-04-022-5/+8
| | | | llvm-svn: 49068
* Fix a comment typo and add a couple suggestions from Chris.Steve Naroff2008-04-022-3/+4
| | | | llvm-svn: 49066
* Fairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass ↵Steve Naroff2008-04-016-70/+83
| | | | | | | | | | | | | (to inherit from NamedDecl, instead of ScopedDecl). - Added a DenseMap to associate an IdentifierInfo with the ObjCCompatibleAliasDecl. - Renamed LookupScopedDecl->LookupDecl and changed it's return type to Decl. Also added lookup for ObjCCompatibleAliasDecl's. - Removed Sema::LookupInterfaceDecl(). Converted clients to used LookupDecl(). - Some minor indentation changes. Will deal with ObjCInterfaceDecl and getObjCInterfaceDecl() in a separate commit... llvm-svn: 49058
* Patch by Argiris Kirtzidis: Fix a dangling pointer error!Ted Kremenek2008-04-011-1/+3
| | | | llvm-svn: 49057
* Update to match simplified llvm MemoryBuffer interfaces for files.Chris Lattner2008-04-013-6/+3
| | | | llvm-svn: 49042
* prune dead #includesChris Lattner2008-04-011-2/+0
| | | | llvm-svn: 49033
* MemoryBuffer::getFile got smarter, obviating the need for readfilefast.Chris Lattner2008-04-011-60/+3
| | | | | | | The new MemoryBuffer doesn't "leak" file descriptors and handles the small file case efficiently. llvm-svn: 49032
* Better handling for tabs with message bubbles.Ted Kremenek2008-03-311-2/+4
| | | | llvm-svn: 49001
* Do not prepend the keyword "[CHECKER]" to checker messages when usingTed Kremenek2008-03-311-2/+5
| | | | | | a PathDiagnosticClient. llvm-svn: 48996
* Hack ReadFileFast() to raise the threshold of memory mapped files (from ↵Steve Naroff2008-03-311-1/+1
| | | | | | | | | | 4->12 pages). This is a temporary solution to avoid running out of file descriptors (which defaults to 256). Need to benchmark to understand the speed benefit. If the benefit is small, the simple solution is to avoid memory mapping files. If the benefit is significant, more thought is necessary. llvm-svn: 48991
* Include ranges in GRSimpleVals diagnostics.Ted Kremenek2008-03-311-1/+3
| | | | llvm-svn: 48990
* Inlined clang/Analysis/Analyses/GRSimpleVals.h into LocalCheckers.h and removedTed Kremenek2008-03-312-23/+27
| | | | | | | | | | GRSimpleVals.h Added a PathDiagnosticClient option to the driver functions for the CFRefCountChecker and the GRSimpleVals analysis. Both analyses now accept a "-o" argument from the driver that specifies where HTML reports should be dumped. llvm-svn: 48989
* Added variation of the "Report" method in the class Diagnostic that takesTed Kremenek2008-03-311-3/+7
| | | | | | | an optional DiagnosticClient argument that differs from the client stored internally in the Diagnostic object. llvm-svn: 48986
* Added path-sensitive check for return statements that return the addressTed Kremenek2008-03-312-8/+51
| | | | | | | of a stack variable. This is the path-sensitive version of a check that is already done during semantic analysis. llvm-svn: 48980
* rename Decl::CompatibleAlias -> ObjCCompatibleAlias.Chris Lattner2008-03-312-19/+68
| | | | | | | | | | | | | | 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
* some cleanups on top of David's patch. There are still twoChris Lattner2008-03-305-64/+46
| | | | | | | | | | | | | 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
* Add initial support for objc codegen for methods, ivars, and theChris Lattner2008-03-3013-53/+357
| | | | | | etoile runtime, patch by David Chisnall! llvm-svn: 48969
* Make sure Sema::ActOnClassMessage() correctly diagnoses "super".Steve Naroff2008-03-281-1/+4
| | | | llvm-svn: 48924
* Added skeleton checking for NSString's method initWithFormat: (do not pass ↵Ted Kremenek2008-03-281-3/+12
| | | | | | | | 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
* Expanded NSString checking to check for nil for a few more methods.Ted Kremenek2008-03-271-31/+92
| | | | llvm-svn: 48898
* Add line SourceLocation to NSString checks.Ted Kremenek2008-03-271-10/+24
| | | | | | Added test case to test warning about passing 'nil' to NSString's compare: method. llvm-svn: 48896
* Hooked up initial NSString interface checking to GRSimpleVals.Ted Kremenek2008-03-273-14/+42
| | | | llvm-svn: 48895
* Minor CSS tweaking (smaller h1 tags).Ted Kremenek2008-03-271-1/+3
| | | | | | Bug fix in EscapeText (for std::string) where spaces were not properly emitted. llvm-svn: 48889
* Add creation of BasicObjCFoundationChecks when running GRSimpleVals from the ↵Ted Kremenek2008-03-273-3/+58
| | | | | | driver. llvm-svn: 48886
* Add html::EscapeText for std::string; use this function to escape text in ↵Ted Kremenek2008-03-271-0/+26
| | | | | | message bubbles. llvm-svn: 48884
* Added <h3> tag in HTML file output that contains the name of the source file.Ted Kremenek2008-03-271-0/+1
| | | | llvm-svn: 48869
* Added "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless ↵Ted Kremenek2008-03-272-0/+152
| | | | | | | | | 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
* PathDiagnosticPiece no longer contains a vector of strings; just one string.Ted Kremenek2008-03-271-7/+29
| | | | | | PathDiagnostic no longer contains a diagnostic ID or diagnostic level. llvm-svn: 48864
* Added classes "PathDiagnosticPiece", "PathDiagnostic", and ↵Ted Kremenek2008-03-271-0/+52
| | | | | | "PathDiagnosticClient", which encapsulate diagnostic reporting for paths. llvm-svn: 48861
* Bug fix: use GetRVal instead of GetLVal (were getting the value of a ↵Ted Kremenek2008-03-261-1/+1
| | | | | | DeclRefExpr, not it's address). llvm-svn: 48846
* Bug fix in transfer function for ObjCMessageExpr: Visit the receiver ↵Ted Kremenek2008-03-261-1/+1
| | | | | | expression as an ordinary expression, not using VisitLVal. llvm-svn: 48842
* Alloc redeclaration of typedefs within ExternCSystemHeaderDir's AND ↵Steve Naroff2008-03-261-3/+4
| | | | | | SystemHeaderDir's. llvm-svn: 48841
* allow the format attribute to be specified in function pointer prototypesNuno Lopes2008-03-251-8/+24
| | | | | | # this is my first commit here, so please be gentle :) llvm-svn: 48807
* Extend QualType::getAddressSpace to do the right thing for array types, and inNate Begeman2008-03-251-8/+3
| | | | | | the future, RecordTypes. llvm-svn: 48784
* GRSimple analysis now outputs additional diagnostic warnings aboutTed Kremenek2008-03-251-8/+14
| | | | | | passing an uninitialized value to a message expresion. llvm-svn: 48776
* Tweak to transfer function for ObjCMessageExpr: handle both instance methodsTed Kremenek2008-03-251-66/+70
| | | | | | and message expressions with a specified receiver. llvm-svn: 48773
* Added logic to check for uninitialized values as the receivers for message ↵Ted Kremenek2008-03-251-8/+64
| | | | | | | | expressions and uninitialized values passed-by-value as arguments to message expressions. llvm-svn: 48760
* Added initial transfer function support for ObjCMessageExpr.Ted Kremenek2008-03-251-0/+41
| | | | llvm-svn: 48757
* Minor CSS tweaking: use webkit style CSS properties for shadows/rounded edgesTed Kremenek2008-03-241-2/+4
| | | | | | for message bubbles. llvm-svn: 48754
OpenPOWER on IntegriCloud