aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-11-26Correctly find overridden destructors.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Lazily create the __cxa_pure_virtual reference.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Use the new CovariantThunkAdjustment in the vtable builder. Anders Carlsson
Make the pure virtual methods map a set instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26typoGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89949 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26issue a friendlier error if someone tries to send precompiled header to '-' ↵Gabor Greif
(stdout) this brings the error on clang -c foo.h -o - closer to clang -c foo.h -o /dev/null git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Remove dead forward declaration. Fix struct/class mismatch. Remove trailing ↵Benjamin Kramer
whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89947 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Remove header which is bringing libAST in (on MSVC).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Remove unused variable.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Shortcut explicit calls to a trivial copy assignment operator.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Simplify and fix up the handling of implicit constructors, copy assignmentEli Friedman
operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Improve diagnostics in ReturnStackAddressChecker for returning a ↵Ted Kremenek
stack-allocated block. Implements the rest of <rdar://problem/7387385>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add test case that shows that dead stores checking now works in the presence ↵Ted Kremenek
of blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Implement IRGen for MemberExpr referring to static member function.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Don't run the LLVM Code tests by default.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89937 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add -Werror for Clang and LLVM on Clang (headers) syntax tests.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89936 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add a Thunk struct to the vtable builder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89935 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Use the more general Evaluate infrastructure for folding constant DeclRefsEli Friedman
instead of checking explicitly for an EnumConstantDecl. This folds references to constant integer VarDecls, which has two benefits: 1. Slightly smaller emitted code from emitting a constant instead of a load, and skipping emitting some constant globals. 2. Some code forgets to define static constant member variables; emitting a load instead of the value in that case leads to a link error. (Such programs are technically not well-formed, but in practice build with g++.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89934 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add a CovariantThunkAdjustment struct that represents the adjustments needed ↵Anders Carlsson
for a covariant thunk. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89933 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Slight tweak to the algorithm for getLinkage().Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89932 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Use new getLinkage() method to correctly compute whether a variable hasEli Friedman
internal linkage. Fixes PR5433. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89931 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Move the mangler into the CodeGen namespace. Change mangleThunk to take a ↵Anders Carlsson
ThunkAdjustment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89930 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add a PostVisitBlockExpr() method to RetainReleaseChecker to query forTed Kremenek
the set of variables "captured" by a block. Until the analysis gets more sophisticated, for now we stop the retain count tracking of any objects (transitively) referenced by these variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89929 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Teach RegionStoreManager::RemoveDeadBindings() about BlockDataRegions. Any ↵Ted Kremenek
VarRegion for a "captured" variable should also be considered live. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add iterators to BlockDataRegion that allow clients to iterate over the ↵Ted Kremenek
VarRegions for "captured" variables for a block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Added batch versions of GRState::scanReachableSymbols() so that clients can ↵Ted Kremenek
scan a collection of SVals or MemRegions all at once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add a ThunkAdjustment struct which holds a non-virtual and a virtual ↵Anders Carlsson
adjustment offset. Start using it. General cleanup in Mangle.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Enhance LiveVariables to understand that blocks can extend the liveness of a ↵Ted Kremenek
variable by "capturing" them in a BlockExpr. This required two changes: 1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so that clients can iterate over the "captured" variables in a block. 2) Modified LiveVariables to take an AnalysisContext& in its constructor and to call getReferencedgetReferencedBlockVars() when it processes a BlockExpr*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89924 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add C++ tests to try to parse and compile the LLVM librariesDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89923 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Factor out a LangStandard class and coalesce the information about the ↵Daniel Dunbar
standards into LangStandards.def - I'd appreciate another pair of eyeballs to double check this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89919 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Fix thinko (-fno-builtin != -nobuiltininc).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add clang -cc1 parsing for preprocessor options.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Add clang -cc1 parsing for header search options.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Refactor our handling of expression evaluation contexts, so that SemaDouglas Gregor
maintains a stack of evaluation contexts rather than having the parser do it. This change made it simpler to track in which contexts temporaries were created, so that we could... "Forget" about temporaries created within unevaluated contexts, so that we don't build a CXXExprWithTemporaries and, therefore, destroy the integral-constness of our expressions. Fixes PR5609. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Add missing case in switch statement.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Refine MemRegions for blocks. Add a new region calledTed Kremenek
'BlockDataRegion' to distinguish between the code associated with a block (which is represented by 'BlockTextRegion') and an instance of a block, which includes both code and data. 'BlockDataRegion' has an associated LocationContext, which can be used to eventually model the lifetime of a block object once LocationContexts can represent scopes (and iterations around a loop, etc.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Remove recently added FIXME. The appropriate FIXME is already in ↵Ted Kremenek
MemRegionManager::getVarRegion(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Allow user re-definition of SEL as well as accessing its fields.Fariborz Jahanian
This fixes pr5611. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Fix attribute between function decl ')' and '{' or '=0'John Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Add FIXME.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Implement the rules in C++ [basic.link] and C99 6.2.2 for computingDouglas Gregor
the linkage of a declaration. Switch the lame (and completely wrong) NamedDecl::hasLinkage() over to using the new NamedDecl::getLinkage(), along with the "can this declaration be a template argument?" check that started all of this. Fixes -fsyntax-only for PR5597. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Add post-visit Checker support in GRExprEngine for BlockExpr.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Add a new RetainReleaseChecker class (that subclasses CheckerVisitor) to ↵Ted Kremenek
extend the functionality of the retain/release checker using the new Checker interface. Pieces of CFRefCount will gradually be migrated to this new class over time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Move RegisterChecks() to the end of the file. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Call GRExprEngine::setTransferFunctions() after registering all Checkers. ↵Ted Kremenek
This allows GRTransferFuncs::RegisterChecks() to always be called after all checkers have been registered. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89887 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Consolidate logic in ActionInlineCall by having it call ActionGRExprEngine ↵Ted Kremenek
instead of replicating most of its logic (and missing pieces). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89886 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Better diagnostic on deleted constructor when noFariborz Jahanian
initializer name is available. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Make RegisterInternalChecks() part of GRExprEngine's private implementation ↵Ted Kremenek
by making it a static function within GRExprEngine.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Register internal checks with GRExprEngine when it is constructed, not ↵Ted Kremenek
manually in AnalysisConsumer.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25When dispatching to Checker objects in GRExprEngine::CheckerVisit(),Ted Kremenek
only stop processing the checkers after all the nodes for a current check have been processed. This (I believe) handles the case where PredSet (the input nodes) contains more than one node due to state bifurcation. Zhongxing: can you review this? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-25Tweak expected error to match what should happen, once using declarations workDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89876 91177308-0d34-0410-b5e6-96231b3b80d8