summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* vtable building for simple inheritance. Still in progress.Mike Stump2009-08-041-1/+18
| | | | llvm-svn: 78110
* Canonicalize else.Mike Stump2009-08-0412-169/+114
| | | | llvm-svn: 78102
* Will I ever get used to CamelCase? Will I ever like capitols forMike Stump2009-08-041-7/+5
| | | | | | | | | random variables? --This line, and those below, will be ignored-- M lib/CodeGen/CGCXX.cpp llvm-svn: 78094
* Add armv7 support.Mike Stump2009-08-041-2/+8
| | | | llvm-svn: 78092
* Revert the fix for PR3800, it broke things.Anders Carlsson2009-08-041-2/+5
| | | | llvm-svn: 78084
* Some code refactoring. Be more generous in issuance of warningFariborz Jahanian2009-08-041-24/+34
| | | | | | on method type mismatches per Chris's comment. llvm-svn: 78075
* Refactor template instantiation for types into a generic treeDouglas Gregor2009-08-043-444/+1206
| | | | | | | | | transformation template (TreeTransform) that handles the transformation and reconstruction of AST nodes. Template instantiation for types is a (relatively small) customization of the generic tree transformation. llvm-svn: 78071
* Simplify alignment handling in the record builder.Anders Carlsson2009-08-041-12/+18
| | | | llvm-svn: 78069
* Update for LLVM API changeDaniel Dunbar2009-08-041-2/+1
| | | | llvm-svn: 78044
* Compare matching selectors in current andFariborz Jahanian2009-08-042-0/+37
| | | | | | | super class(s) and warn on any parameter type mismatch if potentially unsafe. llvm-svn: 78029
* Emit a special 'BUGMETAEND' comment to aid in the postprocessing of HTML bug ↵Ted Kremenek2009-08-031-39/+20
| | | | | | reports. llvm-svn: 78021
* Per advice that Doug Gregor gave me several months ago, clean up theTed Kremenek2009-08-033-57/+34
| | | | | | | | | | | | | implementation of '#pragma unused' by not constructing intermediate DeclRefExprs, but instead do the name lookup directly. The implementation is greatly simplified. Along the way, degrade '#pragma unused(undeclaredvariable)' to a warning instead of being a hard error. This implements: <rdar://problem/6761874> [sema] allow #pragma unused to reference undefined variable (with warning) llvm-svn: 78019
* Make sure UTF-16 strings end with a 16-bit null (as opposed to 8-bit).Daniel Dunbar2009-08-031-0/+3
| | | | llvm-svn: 78001
* Handle disgusting corner case where a byte is loaded from the address of a ↵Ted Kremenek2009-08-031-1/+3
| | | | | | function. llvm-svn: 78000
* When generating cleanup blocks for Obj-C @finally, mark them as catch all blocksDaniel Dunbar2009-08-031-1/+4
| | | | | | | | from the perspective of LLVM exception handling. Otherwise the C++ personality function may decide not to run them, if it only detects cleanup handlers. - Test case for this is exceptions.m in llvm-test. llvm-svn: 77999
* assert(nyi) on attempt to destruct an array of objects.Fariborz Jahanian2009-08-031-2/+6
| | | | llvm-svn: 77993
* ir-gen for destructor calls.Fariborz Jahanian2009-08-031-0/+12
| | | | llvm-svn: 77991
* Refactor methods on DeclSpec to take a diagnostic& parameter, and reflect thisJohn McCall2009-08-036-142/+209
| | | | | | | | elsewhere. Very slightly decouples DeclSpec users from knowing the exact diagnostics to report, and makes it easier to provide different diagnostics in some places. llvm-svn: 77990
* Minor renaming/refactoring. No change in functionality.Fariborz Jahanian2009-08-034-12/+10
| | | | llvm-svn: 77985
* 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
OpenPOWER on IntegriCloud