aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-04-23TranslationUnit now owns IdentifierTable, TargetInfo, and Selectors objectsTed Kremenek
when it is constructed via deserialization. This is done by recording a flag indicating that this is the case, and it deletes these objects by getting the references stored in the ASTContext object. This fixes some memory leaks that occurs when we deserialize translation units from bitcode files. The rationale between having TranslationUnit sometimes own these objects and sometimes not is that a TranslationUnit object can be constructed from state generated by the parser (Preprocessor; semantic analyzer, etc.), and thus in these cases won't own the IdentifierTable or Selectors, etc. During deserialization, there is no Preprocessor, so somebody needs to own these objects in order for them to be properly reclaimed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50149 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23Remove false path where the default branch in a switch statement wouldTed Kremenek
always be taken even if it was not feasible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50132 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23fix a rewriter crash on zero length files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50126 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23Added panic function "assfail".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50119 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-23Patch to build AST for property implementation declarations andFariborz Jahanian
to print declaration from its AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50117 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22For default branches in switch statements with no default label, print outTed Kremenek
the line we are going to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50113 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Rewrote VisitDeclStmt to properly handle initializers that can do anything.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50112 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Added lval type (and tracking) for StringLiterals.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50109 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Added "nonlval::LValAsInteger" to represent abstract LVals casted to ↵Ted Kremenek
integers, allowing us to track lvals when they are casted back to pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50108 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22"This patch renames Chris Lattner
DeclContext *CtxDecl -> DeclContext *DeclCtx DeclContext *CD -> DeclContext *DC It makes the code more consistent." Patch by Zhongxing Xu! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50105 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22PathDiagnosticClients now retain ownership of passed PathDiagnostics, requiringTed Kremenek
them to not be stack-allocated. HTMLDiagnostics now batches PathDiagnostics before emitting HTML in its dtor. This is a workaround for a problem when we trampled the Preprocessor state when highlighting macros (sometimes resulting in an assertion failure). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50102 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Use back() instead of end()-1Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50098 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Added panic function "dtrace_assfail".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50091 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Hardcode "Assert" as a no-return function (panic).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50089 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Add some basic ARM asm constraintsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50085 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22Added null-dereference check for ArraySubscriptExpr.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50083 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Allow property in base class to be implemented in a Fariborz Jahanian
derived class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50074 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Added support for detected bad dereferences involving MemberExprs, e.g. x->f ↵Ted Kremenek
where "x" is NULL. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50071 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21More semantics checks of properties. Property implementation can implicitly useFariborz Jahanian
ivar of same name. Better diagnostics to bring home this point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Support for @dynamic AST build.Fariborz Jahanian
More property semantics checking. First test case for ObjC2's property implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50057 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Fix pasto, thanks to Anders for pointing this out.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50055 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Continuation of work on ObjC2's properties.Fariborz Jahanian
Added iterators, methods to find property and categories. Use them in doing semantic analysis on property implementation declarations. Fixed typos. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21add arm supportChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50049 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Clean up handling of function redeclarationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50021 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20Fix improper dereference of end() iterator. Patch by Argiris Kirtzidis!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20Fix PR2236Nate Begeman
Add test Implement feedback from Chris re: PR1998 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50001 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20Two improvements to initializer parsing:Chris Lattner
1. If we hit a semantic error, try harder to recover to emit diagnostics for later initializer errors (PR2241). 2. Don't leak parsed initializers on an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20for exponent-related errors, emit the diagnostic on the 'e' or 'p'.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20when emitting diagnostics about some character in a numericChris Lattner
literal, indicate what character the error is about or where it would be. For example: pr2241.c:1:17: error: exponent has no digits float f[] = { 1e , 1ee0 }; ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20Only generate code for static functions and global variables that are ↵Nate Begeman
actually used. Warn about unused static functions and variables. This fixes PR1998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49987 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20Restructure and simplify Sema::ObjCQualifiedIdTypesAreCompatible,Chris Lattner
deleting dead code, making other code more obvious, and fixing a bug. This fixes these (bogus) warnings in release mode: SemaExprObjC.cpp:383: warning: 'RHSProtoE' may be used uninitialized in this function SemaExprObjC.cpp:383: warning: 'RHSProtoI' may be used uninitialized in this function git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49984 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20implement a fixme, add support for ++/-- on long double.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49980 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20use simplified ConstantFP:get method.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19replace form feeds with an <hr> tag.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49975 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19simplify ownership of the predefines buffer.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19Gracefully handle when the receiver of a message expression is not a pointer ↵Ted Kremenek
type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49959 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19Generate code for annotation attributes.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49951 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Add support to module codegen for adding and emitting annotationsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49944 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Ignore qualifiers when attempting to match arguments to parameter types for Nate Begeman
__builtin_overload git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49943 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18OCUVector -> ExtVector, shorthand for extended vector, per feedback from Chris.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49942 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Another bug fix in emitting warnings without a path: construct a unit ↵Ted Kremenek
PathDiagnostic as we did before. This allows the HTMLDiagnostic object to retrieve the bug type, bug description, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49939 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18fix __attribute__(format) for struct function pointer fieldsNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49938 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Reenable using the PathDiagnosticClient for BugReports without paths.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49934 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Generalize caching mechanism for bugs reports. Now individual BugTypesTed Kremenek
can decide the policy on how to cache related bugs. This allows us to properly to handle warning about multiple leaks in the same location in the ref count checker (not yet done). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49918 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Fixed more caching bugs related to the one fixed in r49914. SilenceTed Kremenek
compiler warning introduced by a recent patch of mine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49917 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Fixed elusive caching bug that led to false positives.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49914 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Added "GetErrorNodes()" to BugType so that -trim-egraph can recognize errorsTed Kremenek
from registered BugTypes. This helps with debugging. Add detection of NULL values in ref count checker; this suppresses false positives. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49912 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Added "EvalAssume" virtual method to GRTransferFuncs; this is for evaluatingTed Kremenek
the checker-specific logic of symbolic assumptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49910 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Tabs -> spacesNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Fixed bug in GREndPathNodeBuilder: only return a node if it wasn't in the ↵Ted Kremenek
node cache. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49907 91177308-0d34-0410-b5e6-96231b3b80d8