aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-08-03Formatting fixes (trailing whitespace, 80-cols, indentation).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77972 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Fix assertion crash. I don't have a testcase, but the fix is pretty Eli Friedman
obviously correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03add a bunch of routine methods to AnalysisContext.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03lit: Don't treat '\' as an escape in unquoted strings, on Win32. This turns outDaniel Dunbar
to not be a very good idea. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Tweak diagnostic wording; patch by Sean Hunt.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Update for LLVM API change.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Update for LLVM API change.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77947 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03now we can let AnalysisManager to own the PathDiagnosticClient.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Create only one AnalysisManager for each translation unit. In HandleCode(),Zhongxing Xu
reset the current analysis context of the AnalysisManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Add LocationContext classes to enable creation of cross function Zhongxing Xu
ProgramPoints. ProgramPoints will refer to them in the furture. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03Driver/OpenBSD: Improve ld options.Daniel Dunbar
- Patch by Jonathan Gray! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77935 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Produce a warning that partial ordering of function templates is not yet ↵Douglas Gregor
supported git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Keep track of the template arguments deduced when matching a classDouglas Gregor
template partial specialization. Then, use those template arguments when instantiating members of that class template partial specialization. Fixes PR4607. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Whoops, meant to delete this.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02use CodeGenModule::EmitNullConstant in a couple of places.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Use the correct cast kind for dynamic_cast.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Update C++ open projects listDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02We have fairly good support for namespaces, now. Namespace aliases are ↵Douglas Gregor
parsed correctly git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Remove duplicated colon.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Fix regression caused by recent refactoring where HTML and plist files would ↵Ted Kremenek
not get flushed out when using '-disable-free'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Include '-o' arguments in verbose output.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02linkify IRCChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02rearrange side bar, add link to IRC info.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Remove RegionViews and RegionCasts. These are no longer used.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02RegionStoreManager::RemoveDeadBindings() now removes dead 'default' bindings ↵Ted Kremenek
as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Generalize the interface of 'StoreManager::RemoveDeadBindings()' to ↵Ted Kremenek
manipulate the entire GRState, not just the Store. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Remove old code that was causing the new test to fail.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77862 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Fix regression in StoreManager::CastRegion() to always treat casts toTed Kremenek
'void*' (or 'const void*') as an identity transformation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77860 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Don't evaluate inout constraints twice. Fixes PR3800.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77854 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Compute end_overridden_methods in a way that keeps ENABLE_EXPENSIVE_CHECKSDaniel Dunbar
happy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77850 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Tweak svn:ignoreDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77849 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02Use Twine instead of utostrDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77848 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Avoid accessing invalid std::vector element; this makes clangDaniel Dunbar
ENABLE_EXPENSIVE_CHECKS clean on x86_64-.*-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77831 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Catch (internal) exceptions when using --no-sh.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Fix a minor issue with unions in the new struct building code.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77829 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Fix thinko in finding config file.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Additional AuroraUX header path.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77811 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Don't error on C++ linkage; if we don't support that, there are Eli Friedman
serious issues :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Add temp C++ include path for AuroraUX; patch by Edward O'Callaghan.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Add internal script execution.Daniel Dunbar
- Off by default, you can test it with the --no-sh argument. - For me it works for all but 3 tests, but there a number of FIXMEs and QOI issues: o Redirection isn't completely accurate -- in practice it can't portably be, but I would like to error out if someone writes something which isn't going to work. This is the source of the 3 test failures. o Some pipe configurations have the potential to deadlock. o It is significantly slower when multithreaded. I believe this is due to locking happening under the hood, there is probably some kind of solution but I haven't investigated yet. o Log output is ugly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Two more sh lex/parse bugs (but its so simple!)Daniel Dunbar
- Empty arguments weren't handled correctly. - Escapes outside quoted strings weren't handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01This is a fairly large patch, which resulted from a cascade of changesTed Kremenek
made to RegionStore (and related classes) in order to handle some analyzer failures involving casts and manipulation of symbolic memory. The root of the change is in StoreManager::CastRegion(). Instead of using ad hoc heuristics to decide when to layer an ElementRegion on a casted MemRegion, we now always layer an ElementRegion when the cast type is different than the original type of the region. This carries the current cast information associated with a region around without resorting to the error prone recording of "casted types" in GRState. Along with this new policy of layering ElementRegions, I added a new algorithm to strip away existing ElementRegions when they simply represented casts of a base memory object. This algorithm computes the raw "byte offset" that an ElementRegion represents from the base region, and allows the new ElementRegion to be based off that offset. The added benefit is that this naturally handles a series of casts of a MemRegion without building up a set of redundant ElementRegions (thus canonicalizing the region view). Other related changes that cascaded from this one (as tests were failing in RegionStore): - Revamped RegionStoreManager::InvalidateRegion() to completely remove all bindings and default values from a region and all subregions. Now invalidated fields are not bound directly to new symbolic values; instead the base region has a "default" symbol value from which "derived symbols" can be created. The main advantage of this approach is that it allows us to invalidate a region hierarchy and then lazily instantiate new values no matter how deep the hierarchy went (i.e., regardless of the number of field accesses, e.g. x->f->y->z->...). The previous approach did not do this. - Slightly reworked RegionStoreManager::RemoveDeadBindings() to also incorporate live symbols and live regions that do not have direct bindings but also have "default values" used for lazy instantiation. The changes to 'InvalidateRegion' revealed that these were necessary in order to achieve lazy instantiation of values in the region store with those bindings being removed too early. - The changes to InvalidateRegion() and RemoveDeadBindings() revealed a serious bug in 'getSubRegionMap()' where not all region -> subregion relationships involved in actually bindings (explicit and implicit) were being recorded. This has been fixed by using a worklist algorithm to iteratively fill in the region map. - Added special support to RegionStoreManager::Bind()/Retrieve() to handle OSAtomicCompareAndSwap in light of the new 'CastRegion' changes and the layering of ElementRegions. - Fixed a bug in SymbolReaper::isLive() where derived symbols were not being marked live if the symbol they were derived from was also live. This fix was critical for getting lazy instantiation in RegionStore to work. - Tidied up the implementation of ValueManager::getXXXSymbolVal() methods to use SymbolManager::canSymbolicate() to decide whether or not a symbol should be symbolicated. - 'test/Analysis/misc-ps-xfail.m' now passes; that test case has been moved to 'test/Analysis/misc-ps.m'. - Tweaked some pretty-printing of MemRegions, and implemented 'ElementRegion::getRawOffset()' for use with the CastRegion changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Ok, ok, I give in. Fix tests for unused result warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Temporarily disable out-of-bounds checking. The current checking logic will ↵Ted Kremenek
not work quite right with the changes I'm about to commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77779 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Use %S, not `pwd`, and enable a line that *does* work.Daniel Dunbar
- Doug, please check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Fix two sh lexing bugs.Daniel Dunbar
- '\\\\' inside a "..." string becomes '\\'. - The '<' token wasn't being recognized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01'unset' isn't needed in these tests anymore, we always run with a controlledDaniel Dunbar
environment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77776 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Fix a name lookup problem, which only occurred on a race condition. This isDaniel Dunbar
why dynamic binding sucks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Pull a few more variables into the TestingConfig object.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01lit: Don't use threads when only running one test, or with -j 1.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77766 91177308-0d34-0410-b5e6-96231b3b80d8