summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Templatize BadSpecifier and introduce DeclSpec::getSpecifier(T) for theJohn McCall2009-08-031-35/+33
| | | | | | remaining specifier enums T. llvm-svn: 77981
* Formatting fixes (trailing whitespace, 80-cols, indentation).Daniel Dunbar2009-08-031-1081/+1088
| | | | llvm-svn: 77972
* Fix assertion crash. I don't have a testcase, but the fix is pretty Eli Friedman2009-08-031-1/+1
| | | | | | obviously correct. llvm-svn: 77969
* add a bunch of routine methods to AnalysisContext.Zhongxing Xu2009-08-031-0/+50
| | | | llvm-svn: 77961
* Update for LLVM API change.Daniel Dunbar2009-08-031-2/+1
| | | | llvm-svn: 77952
* Update for LLVM API change.Daniel Dunbar2009-08-031-1/+2
| | | | llvm-svn: 77947
* now we can let AnalysisManager to own the PathDiagnosticClient.Zhongxing Xu2009-08-031-6/+8
| | | | llvm-svn: 77945
* Create only one AnalysisManager for each translation unit. In HandleCode(),Zhongxing Xu2009-08-031-14/+11
| | | | | | reset the current analysis context of the AnalysisManager. llvm-svn: 77943
* Driver/OpenBSD: Improve ld options.Daniel Dunbar2009-08-031-2/+18
| | | | | | - Patch by Jonathan Gray! llvm-svn: 77935
* Produce a warning that partial ordering of function templates is not yet ↵Douglas Gregor2009-08-021-2/+4
| | | | | | supported llvm-svn: 77928
* Keep track of the template arguments deduced when matching a classDouglas Gregor2009-08-022-2/+19
| | | | | | | | template partial specialization. Then, use those template arguments when instantiating members of that class template partial specialization. Fixes PR4607. llvm-svn: 77925
* Whoops, meant to delete this.Anders Carlsson2009-08-021-1/+0
| | | | llvm-svn: 77916
* use CodeGenModule::EmitNullConstant in a couple of places.Anders Carlsson2009-08-023-4/+4
| | | | llvm-svn: 77915
* Use the correct cast kind for dynamic_cast.Anders Carlsson2009-08-021-8/+11
| | | | llvm-svn: 77905
* Fix regression caused by recent refactoring where HTML and plist files would ↵Ted Kremenek2009-08-021-0/+5
| | | | | | not get flushed out when using '-disable-free'. llvm-svn: 77882
* Remove RegionViews and RegionCasts. These are no longer used.Ted Kremenek2009-08-021-135/+4
| | | | llvm-svn: 77876
* RegionStoreManager::RemoveDeadBindings() now removes dead 'default' bindings ↵Ted Kremenek2009-08-021-2/+32
| | | | | | as well. llvm-svn: 77875
* Generalize the interface of 'StoreManager::RemoveDeadBindings()' to ↵Ted Kremenek2009-08-023-21/+20
| | | | | | manipulate the entire GRState, not just the Store. llvm-svn: 77870
* Remove old code that was causing the new test to fail.Anders Carlsson2009-08-021-3/+0
| | | | llvm-svn: 77862
* Fix regression in StoreManager::CastRegion() to always treat casts toTed Kremenek2009-08-021-3/+7
| | | | | | 'void*' (or 'const void*') as an identity transformation. llvm-svn: 77860
* Don't evaluate inout constraints twice. Fixes PR3800.Anders Carlsson2009-08-021-2/+2
| | | | llvm-svn: 77854
* Compute end_overridden_methods in a way that keeps ENABLE_EXPENSIVE_CHECKSDaniel Dunbar2009-08-021-1/+1
| | | | | | happy. llvm-svn: 77850
* Use Twine instead of utostrDaniel Dunbar2009-08-021-1/+1
| | | | llvm-svn: 77848
* Avoid accessing invalid std::vector element; this makes clangDaniel Dunbar2009-08-011-2/+3
| | | | | | ENABLE_EXPENSIVE_CHECKS clean on x86_64-.*-darwin10. llvm-svn: 77831
* Fix a minor issue with unions in the new struct building code.Eli Friedman2009-08-011-2/+5
| | | | llvm-svn: 77829
* Additional AuroraUX header path.Eli Friedman2009-08-011-0/+1
| | | | llvm-svn: 77811
* Don't error on C++ linkage; if we don't support that, there are Eli Friedman2009-08-011-1/+2
| | | | | | serious issues :) llvm-svn: 77800
* Add temp C++ include path for AuroraUX; patch by Edward O'Callaghan.Eli Friedman2009-08-011-0/+3
| | | | llvm-svn: 77786
* This is a fairly large patch, which resulted from a cascade of changesTed Kremenek2009-08-015-203/+437
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 77782
* Temporarily disable out-of-bounds checking. The current checking logic will ↵Ted Kremenek2009-08-011-1/+6
| | | | | | not work quite right with the changes I'm about to commit. llvm-svn: 77779
* More warnings for unused expressions.Anders Carlsson2009-08-011-0/+2
| | | | llvm-svn: 77763
* Add beginnigs of rtti generation, wire up more of -fno-exceptions.Mike Stump2009-07-315-6/+68
| | | | llvm-svn: 77751
* Remove the old struct builder code.Anders Carlsson2009-07-311-177/+1
| | | | llvm-svn: 77738
* And now we can generate a simple vtable. Still a work in progress...Mike Stump2009-07-311-11/+23
| | | | llvm-svn: 77737
* Move code from EmitUnion directly into the function that handles cast-to-union.Anders Carlsson2009-07-311-2/+28
| | | | llvm-svn: 77735
* Use the struct builder for unions.Anders Carlsson2009-07-311-0/+2
| | | | llvm-svn: 77732
* Fixup spacing and 80-col violations.Mike Stump2009-07-311-20/+27
| | | | llvm-svn: 77731
* Update for LLVM API change.Owen Anderson2009-07-3114-84/+84
| | | | llvm-svn: 77722
* For a CXXOperatorCallExpr, fix the order that StmtLocResolver uses to check ↵Argyrios Kyrtzidis2009-07-311-0/+33
| | | | | | subexpressions. llvm-svn: 77713
* Remove a redundant getCanonicalType callDouglas Gregor2009-07-311-1/+1
| | | | llvm-svn: 77702
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-317-13/+76
| | | | llvm-svn: 77699
* Fix spacing.Mike Stump2009-07-311-1/+1
| | | | llvm-svn: 77688
* Update for LLVM API change.Owen Anderson2009-07-313-10/+10
| | | | llvm-svn: 77686
* Make canonicalization of overloaded function declarations match theDouglas Gregor2009-07-311-19/+3
| | | | | | | Itanium C++ ABI's name mangling, since both are related to the notion of "equivalent" function templates. llvm-svn: 77678
* Canonicalize template template parameters. We can't test this yet, butDouglas Gregor2009-07-311-1/+5
| | | | | | it's "obviously correct" :) llvm-svn: 77677
* Canonicalize function parametersDouglas Gregor2009-07-311-0/+12
| | | | llvm-svn: 77676
* Canonicalization and profiling for overloaded function declarations,Douglas Gregor2009-07-312-5/+43
| | | | | | | | for those extra-esoteric cases. Not that any two given C++ compilers agree on this test case, but this change gives us a strong definition of equivalent types. llvm-svn: 77664
* Canonicalize dependent extended vector types.Douglas Gregor2009-07-312-5/+37
| | | | llvm-svn: 77663
* PR3679 - enable #pragma weak aliasing.Ryan Flynn2009-07-314-8/+31
| | | | llvm-svn: 77660
* Rename Action::TagKind to Action::TagUseKind, which removes both a misnomerJohn McCall2009-07-316-46/+47
| | | | | | and a name collision. llvm-svn: 77658
OpenPOWER on IntegriCloud