aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-02-07Added some more opcode pretty-printing.Ted Kremenek
Minor cleanups with generating nodes for NULL-pointer dereferences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46851 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Added proof-of-concept NULL pointer diagnostics to GRConstants.Ted Kremenek
Modified the driver to pass the Diagnostic object to GRConstants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46847 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Added support to distinguish between both implicit and explicit null ↵Ted Kremenek
dereferences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46846 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Implement support for the extremely atrocious MS /##/ extension, Chris Lattner
which pastes together a comment. This is only enabled with -fms-extensions of course. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46845 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07these aren't tokens.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46844 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Added recording of "implicit" NULL dereferences of symbolic pointers.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46843 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Add a FIXME for alternate address spaces.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46841 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07get the tree building againChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46840 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Added several guards in transfer functions for "InvalidValues".Ted Kremenek
Fixed bug in RemoveDeadBindings by implementing a simple "mark-and-sweep" cleaner over the bindings, starting from the Decls and block-level expressions that are considered "live" by the Liveness analysis. Fixed bug in isa<> implementation for class LValue. Added "VisitDeclRefExpr" to GRConstants so that we explicitly bind the current value of variable to the Block-level Expression (i.e., when the DeclRefExpr is at the CFGBlock level). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46839 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Implement -fms-extensions. This allows us to fuzzy parse non-standard MS ↵Steve Naroff
constructs used in "windows.h". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46838 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Fixed bug in LiveVariables analysis where Block-level exprs appearingTed Kremenek
as the initializers for DeclStmts were not being registered as being live at the start of the DeclStmt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46837 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Added transfer function logic for ReturnStmts.Ted Kremenek
Fixed insidious bug in handling dereferences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46835 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Minor reordering of the serialization of the fields of MemberExpr to resultTed Kremenek
in a smaller encoding on disk. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46832 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Major code refactoring/cleanup with transfer function logic. Now theTed Kremenek
code structure is more suitable for additional symbolic analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46831 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Make sure to propagate qualifiers through the member operator.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46830 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06explicitly document that return statement argument does not necessarily ↵Chris Lattner
follow the result type of the function. Add testcase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46823 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Use the subprocess module instead of os.system. Patch by Sam Bishop.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46819 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Added main transfer function support for unary operator "!".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46815 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Added assumption logic for symbolic non-lvalues when used in conditions such asTed Kremenek
"if(x)". On the true branch we know the value is != 0, and on the false branch we know it is 0. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46814 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Add pointer + int (and vice versa) to the constant emitter.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46812 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Generate code for the various __builtin_ctz functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46811 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06now that ConvertTagDeclType is nice and simple, use it from UpdateCompletedType.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46809 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06simplify and speed up type refinement logic. No functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46808 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06only convert the type name once, not each type it is refined.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46807 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Fix the codegen of structs with flexible array members.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46806 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06simplify a bunch of code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46805 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06rename TypeHolderMap to TypeCache, which more aptly describes what it is.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46804 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06split tagged decl layout into its own method.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46803 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06only update the llvm type for a struct when we used the struct Chris Lattner
previously in an opaque context. If we didn't do this, computing its layout could be wasted: just be lazy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46802 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06sink more of the type related code into CodeGenTypes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46801 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06codegen static variables in a function into a different namespace fromChris Lattner
static variables outside functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46800 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Be a bit stricter about array type compatibility.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46799 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Finish off the refactoring of type handling stuff. Now we recompile everyChris Lattner
tag decl after it has been completed git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46798 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Fixed bug in '=' transfer function: RHS does not have to be a non-LValue.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46797 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Fixed signedness bug in cast transfer function when casting integers to ↵Ted Kremenek
pointers. Removed lval::SymIntConstraintVal; wrappers for symbolic constraints are not lvalues (only integers that evaluate to !0 or 0). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46796 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Modified state pretty-printing to include the '!=' and '==' constraints onTed Kremenek
symbols (for constant integers). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46795 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Disabled operator= for ValueStateImpl.Ted Kremenek
ValueState no longer inherits FoldingSetNode (not needed). Removed redundant operator= implementation for ValueState (it simply did the default behavior). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46794 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Fixed bug when allocating a ValueStateImpl object in getPersistentState()Ted Kremenek
using the bump-pointer allocator and a placed new; we accidentally allocated a ValueStateImpl* instead, causing an overrun when we did a placed new(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46793 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06move the codegen ASTConsumer out of the driver into libcodegen,Chris Lattner
eliminating a bunch of forwarding methods and generally simplifying things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46792 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06pull .ll and .bc writing out of the ASTConsumer destructors into some topChris Lattner
level code in clang. This is a cleanup, but does implement "-o" for -emit-llvm. One effect of this is that "clang foo.c -emit-llvm" will now emit into foo.ll instead of stdout. Use "clang foo.c -emit-llvm -o -" or "clang < foo.c -emit-llvm" to get the old behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46791 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Added some skeleton code for performing "assume" on symbols: e.g. assume($0 ↵Ted Kremenek
!= 0). This action will add constraints to the possible values of a symbol. Still needs to be debugged. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46789 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06inform astconsumer about tagdecls as they are defined.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46788 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06pass the astconsumer into Sema's ctor, clean up some stuff in Chris Lattner
Sema::ActOnTranslationUnitScope. The various ObjC pieces at the top of Sema.cpp should be moved into SemaObjC or something. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46787 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06rename ASTSTreamer.{h|cpp} -> ParseAST.{h|cpp}Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46786 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06kill the ASTStreamer class, inlining it into its only client: clang::ParseASTChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46785 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06Even more inline asm codegen fixes.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46784 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-06simple implementation of __builtin_allocaNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46783 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-05Add a FIXME to clarify previous commit/experiment.Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46782 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-05Handle the memory clobber.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46780 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-05Improvements to inline asm code generation.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46779 91177308-0d34-0410-b5e6-96231b3b80d8