aboutsummaryrefslogtreecommitdiff
path: root/include/clang
AgeCommit message (Collapse)Author
2008-04-02Added "back()" method to PathDiagnostic to access the last piece in a path.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49112 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Change ObjCInterfaceDecl to inherit from NamedDecl (not TypeDecl). While ↵Steve Naroff
ObjCInterfaceDecl is arguably a TypeDecl, it isn't a ScopedDecl. Since TypeDecl's are scoped, it makes sense to simply treat them as NamedDecl's. I could have fiddled a bit more with the hierarchy (in terms of creating a non-scoped TypeDecl), however this probably isn't worth the effort. I also finished unifying access to scope decl change by converting Sema::getObjCInterfaceDecl() to use Sema::LookupDecl(). This is much cleaner now:-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49107 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02add a common base class "PointerLikeType" for PointerType and ReferenceType,Chris Lattner
allowing them to be treated the same in some contexts. A suggestion for a better name is welcome :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49100 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02improve error to be something end users will actually understand :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49097 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Two changes to Sema::LookupDecl() interface. Steve Naroff
(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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49087 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Added "description" field to PathDiagnostic.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49083 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Various parts of the standard require something to be an "incomplete or Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49082 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-021) Enforce C99 6.7.3p2: "Types other than pointer types derived fromChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49081 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Fix several bugs in array -> pointer decomposition.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49078 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Fix copy-paste error.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49076 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01Fairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass ↵Steve Naroff
(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... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49058 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31improve comma consistency, yes I'm analChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49004 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31Inlined clang/Analysis/Analyses/GRSimpleVals.h into LocalCheckers.h and removedTed Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31Added variation of the "Report" method in the class Diagnostic that takesTed Kremenek
an optional DiagnosticClient argument that differs from the client stored internally in the Diagnostic object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48986 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31Added path-sensitive check for return statements that return the addressTed Kremenek
of a stack variable. This is the path-sensitive version of a check that is already done during semantic analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48980 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31rename Decl::CompatibleAlias -> ObjCCompatibleAlias.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48972 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-28Make sure Sema::ActOnClassMessage() correctly diagnoses "super".Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48924 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27Hooked up initial NSString interface checking to GRSimpleVals.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48895 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27ProgramPoint is just a smart pointer; no reason to return a constant reference.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48891 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27Add default ctor implementation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48885 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27Add html::EscapeText for std::string; use this function to escape text in ↵Ted Kremenek
message bubbles. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48884 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27Added "GRAuditor" and "GRSimpleAPICheck" interface to allow simple stateless ↵Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48867 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27PathDiagnosticPiece no longer contains a vector of strings; just one string.Ted Kremenek
PathDiagnostic no longer contains a diagnostic ID or diagnostic level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48864 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27Added classes "PathDiagnosticPiece", "PathDiagnostic", and ↵Ted Kremenek
"PathDiagnosticClient", which encapsulate diagnostic reporting for paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48861 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-27In ObjCMessageExpr: getSelector() const should just return "Selector", not ↵Ted Kremenek
"const Selector&" because Selector is just a smart pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48860 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Extend QualType::getAddressSpace to do the right thing for array types, and inNate Begeman
the future, RecordTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48784 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25GRSimple analysis now outputs additional diagnostic warnings aboutTed Kremenek
passing an uninitialized value to a message expresion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48776 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Tweak to transfer function for ObjCMessageExpr: handle both instance methodsTed Kremenek
and message expressions with a specified receiver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48773 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Added logic to check for uninitialized values as the receivers for message ↵Ted Kremenek
expressions and uninitialized values passed-by-value as arguments to message expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48760 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Added initial transfer function support for ObjCMessageExpr.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48757 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-25Added "arg_iterators" to ObjCMessageExpr (for iterating over the arguments ↵Ted Kremenek
of a message expression) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48756 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-21Rename "Nodify" to "MakeNode"Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-20LiveVariables analysis now uses intersect for the merge of block-level ↵Ted Kremenek
expression liveness information. The rationale is that a block-level expression cannot be live in a parent block unless it is live in all of the successor blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48618 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19Minor speed tweak per Chris's suggestion: use &S[0] instead of S.c_str().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48544 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19Integrated some of Chris's comments; check for an empty string in InsertStrXXX()Ted Kremenek
before descending into the bowels of the Rewriter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48541 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19Moved generation of html header/footer with builtin CSS to the rewriter library.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48537 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19Added InsertStrXXX/InsertCStrXXX methods to the Rewriter to provide a simplerTed Kremenek
interface to the rewriter when clients have NULL terminated strings or std::string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48532 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-19More cleanups to HTML rewriter API: remove the InsertTag method; was too ↵Ted Kremenek
complicated and clients can achieve a cleaner design just by inserting tags directly. Reserve the "html" namespace for meta-level operations (e.g., escaping text, etc.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48524 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18More HTML rewriter cleanups. Preliminary CSS support in code pretty-printing.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48518 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Some cleanups to the HTMLRewrite API. Added support for printing out lineTed Kremenek
numbers (more work to be done on aesthetics). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48512 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Modified "InsertTag" (HTML rewriter) to have an optional "OutermostTag" flag toTed Kremenek
indicate whether or not the new tag should be the outermost tag at the specified location (in the case that other tags have been inserted at the same spot). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48506 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Added the beginning of a set of rewriter functions for pretty-printing sourceTed Kremenek
code as HTML. Added a new driver option "--emit-html" to dump the source of the main input file as HTML. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48505 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Added variant of "InsertText" in the Rewriter to support inserting text bothTed Kremenek
*before* and after a specific location. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48504 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Fix comment.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48501 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Added method "getSourceMgr" to class Rewriter.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48496 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18Fix a typoNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48482 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-17Added initial transfer function support for inline asm.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48466 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-17Added "inputs" and "outputs" iterator (expression) for AsmStmt.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48465 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-17eliminate the last signed element count.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48436 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-17clean up iteration over propertydecls.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48435 91177308-0d34-0410-b5e6-96231b3b80d8