summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* A bunch more thunk fixes from misc testing.Eli Friedman2009-12-074-54/+72
| | | | | | (Yes, I do intend to commit some tests for this.) llvm-svn: 90818
* Add codegen support for exception specifications. WIP.Mike Stump2009-12-073-0/+127
| | | | llvm-svn: 90817
* Recover from dot accesses to record pointers and arrow accesses to records.John McCall2009-12-072-4/+33
| | | | | | Patch by Nicola Gigante! llvm-svn: 90814
* Enable '-analyzer-opt-analyze-nested-blocks' by default for testing.Ted Kremenek2009-12-071-0/+3
| | | | llvm-svn: 90812
* Add clang-cc option '-analyzer-opt-analyze-nested-blocks' to treat block ↵Ted Kremenek2009-12-072-9/+38
| | | | | | literals as an entry point for analyzer checks. llvm-svn: 90810
* Add analysis support for blocks. This includes a few key changes:Ted Kremenek2009-12-078-184/+238
| | | | | | | | | | | | | | | | | - Refactor the MemRegion hierarchy to distinguish between different StackSpaceRegions for locals and parameters. - VarRegions for "captured" variables now have the BlockDataRegion as their super region (except those passed by reference) - Add transfer function support to GRExprEngine for BlockDeclRefExprs. This change also supports analyzing blocks as an analysis entry point (top-of-the-stack), which required pushing more context-sensitivity around in the MemRegion hierarchy via the use of LocationContext objects. Functionally almost everything is the same, except we track LocationContexts in a few more areas and StackSpaceRegions now refer to a StackFrameContext object. In the future we will need to modify MemRegionManager to allow multiple StackSpaceRegions in flight at once (for the analysis of multiple stack frames). llvm-svn: 90809
* Add the BlockDecl to the DeclContext.Ted Kremenek2009-12-072-1/+2
| | | | llvm-svn: 90808
* Correctly handle conditional operators involving throw.Eli Friedman2009-12-071-4/+5
| | | | llvm-svn: 90800
* Make the comma operator consistently call EnsureInsertPoint.Eli Friedman2009-12-071-0/+1
| | | | llvm-svn: 90799
* Work around emitters that can't deal with dead code contexts yet.Mike Stump2009-12-071-0/+4
| | | | llvm-svn: 90796
* Allow accessing 'isa' via '->' operator. Fariborz Jahanian2009-12-071-0/+10
| | | | | | (fixes radar 7447251). llvm-svn: 90795
* Mangle basic_ostream and basic_iostream specializations.Anders Carlsson2009-12-071-12/+34
| | | | llvm-svn: 90794
* Remove obsolete fallback code for objectsize.Mike Stump2009-12-071-10/+0
| | | | llvm-svn: 90780
* implement PR5274: mark 'restrict' parameters as noaliasNuno Lopes2009-12-071-0/+3
| | | | llvm-svn: 90778
* Shorten the help test for -no-canonical-prefixes, put it behind HelpHidden andRafael Espindola2009-12-072-3/+3
| | | | | | claim it in Driver.cpp instead of Tools.cpp. llvm-svn: 90777
* Patch to allow restrict applied to id/Class types.Fariborz Jahanian2009-12-071-4/+8
| | | | | | (fixes radar 7442244). llvm-svn: 90773
* add fedora 12 include pathNuno Lopes2009-12-071-19/+23
| | | | llvm-svn: 90772
* reduce nesting.Chris Lattner2009-12-071-3/+9
| | | | llvm-svn: 90769
* When in an Objective-C instance method, super is a valid code-completion resultDouglas Gregor2009-12-071-0/+14
| | | | llvm-svn: 90758
* Code completion for Objective-C @ keywords that are statements or expressionsDouglas Gregor2009-12-073-2/+102
| | | | llvm-svn: 90757
* Code completion for Objective-C @ directivesDouglas Gregor2009-12-073-1/+105
| | | | llvm-svn: 90756
* Add EvalCallExpr interface to checker, and migrate the no-return functionZhongxing Xu2009-12-074-59/+136
| | | | | | | | | handler to this interface. GRExprEngine::CheckerEvalCall() will return true if one of the checkers has processed the node. In the future this might return void when we have some default checker. llvm-svn: 90755
* Instantiated or specialized class templates never have a key function. This ↵Anders Carlsson2009-12-071-0/+5
| | | | | | (and the previous check-in) fixes PR5557. llvm-svn: 90753
* Rework how virtual member functions are marked. If a class has no key ↵Anders Carlsson2009-12-075-33/+96
| | | | | | function, we now wait until the end of the translation unit to mark its virtual member functions as references. This lays the groundwork for fixing PR5557. llvm-svn: 90752
* It's OK to try to emit a vtable definition more than once. Fixes PR5697.Anders Carlsson2009-12-071-2/+7
| | | | llvm-svn: 90751
* getTemplateSpecializationKind should be const.Anders Carlsson2009-12-071-2/+2
| | | | llvm-svn: 90750
* Erm, revert for the moment; I didn't test this as thoroughly as I should haveEli Friedman2009-12-071-3/+3
| | | | | | (although it does pass regression tests). llvm-svn: 90747
* Tweak the formula for non-virtual offsets to something which appears a bitEli Friedman2009-12-071-3/+3
| | | | | | more accurate. llvm-svn: 90746
* Move key functions to a separate map.Anders Carlsson2009-12-075-38/+57
| | | | llvm-svn: 90745
* DeclaratorInfo -> TypeSourceInfo. Makes an effort to rename associated ↵John McCall2009-12-0728-288/+288
| | | | | | | | | | | | | | | | | | | | | variables, but the results are imperfect. For posterity, I did: cat <<EOF > $cmdfile s/DeclaratorInfo/TypeSourceInfo/g s/DInfo/TInfo/g s/TypeTypeSourceInfo/TypeSourceInfo/g s/SourceTypeSourceInfo/TypeSourceInfo/g EOF find lib -name '*.cpp' -not -path 'lib/Parse/*' -exec sed -i '' -f $cmdfile '{}' \; find lib -name '*.h' -exec sed -i '' -f $cmdfile '{}' \; find include -name '*.h' -not -path 'include/clang/Parse/*' -not -path 'include/clang/Basic/*' -exec sed -i '' -f $cmdfile '{}' \; llvm-svn: 90743
* fix -dM with variadic macros, PR5699Chris Lattner2009-12-071-8/+15
| | | | llvm-svn: 90735
* some code cleanup.Chris Lattner2009-12-071-9/+14
| | | | llvm-svn: 90732
* remove some defaulted params for consistency.Chris Lattner2009-12-071-3/+3
| | | | llvm-svn: 90731
* reapply my patch for PR4451, which improves diagnostics for :: vs : confusion.Chris Lattner2009-12-075-12/+76
| | | | | | This time with a fix to bail out when in a dependent context. llvm-svn: 90730
* fix a crash on invalid I found when working on something unrelated.Chris Lattner2009-12-071-1/+3
| | | | llvm-svn: 90729
* Move RequireCompleteType requirement for fields early into ActOnField so thatEli Friedman2009-12-072-10/+17
| | | | | | subsequent code which depends on a complete type does the right thing. llvm-svn: 90727
* Don't print a void return type for C++ constructors and destructors when ↵Sam Weinig2009-12-061-1/+2
| | | | | | generating a predefined expr for them. llvm-svn: 90725
* Be a bit more complete about accumulating SavedThisAdjustments.Eli Friedman2009-12-061-2/+4
| | | | llvm-svn: 90723
* Work-in-progess rewrite of thunks: move thunk generation outside of vtableEli Friedman2009-12-065-9/+183
| | | | | | | generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. llvm-svn: 90722
* PointerUnion == PointerUnion does not do what I thought it did. Also, fix a ↵Douglas Gregor2009-12-061-4/+4
| | | | | | thinko in a PointerUnion::get call. llvm-svn: 90719
* Integrate the following from the 'objective-rewrite' branch:Steve Naroff2009-12-061-44/+75
| | | | | | | | http://llvm.org/viewvc/llvm-project?view=rev&revision=81871 http://llvm.org/viewvc/llvm-project?view=rev&revision=81936 http://llvm.org/viewvc/llvm-project?view=rev&revision=81945 llvm-svn: 90718
* revert my previous patch, it is breaking something and I don't have timeChris Lattner2009-12-065-69/+12
| | | | | | to fix it ATM. llvm-svn: 90717
* Move helper onto CXXMethodDecl.Eli Friedman2009-12-062-17/+21
| | | | llvm-svn: 90716
* Switch the std::multimap shadow map used in code completion to anDouglas Gregor2009-12-061-16/+179
| | | | | | | llvm::DenseMap, for a 20% performance improvement in the Cocoa-big-list performance benchmark. llvm-svn: 90715
* implement PR4451, improving error recovery for a mistaken : where a :: wasChris Lattner2009-12-065-12/+69
| | | | | | | | | | | | | | | | | | | | | | | | intended. On the first testcase in the bug, we now produce: cxx-decl.cpp:12:2: error: unexpected ':' in nested name specifier y:a a2; ^ :: instead of: t.cc:8:1: error: C++ requires a type specifier for all declarations x:a a2; ^ t.cc:8:2: error: invalid token after top level declarator x:a a2; ^ ; t.cc:9:11: error: use of undeclared identifier 'a2' x::a a3 = a2; ^ llvm-svn: 90713
* simplify logic.Chris Lattner2009-12-061-6/+7
| | | | llvm-svn: 90712
* Add rudimentary support for member pointers to CGDebugInfo.Anders Carlsson2009-12-064-132/+172
| | | | llvm-svn: 90711
* remove some extraneous syntax: sourceloc implicitly converts to sourcerange.Chris Lattner2009-12-067-14/+13
| | | | llvm-svn: 90710
* use new helpers to simplify code.Chris Lattner2009-12-061-8/+4
| | | | llvm-svn: 90709
* Fix an off by one in findEndOfWord, which could scan past the end of the ↵Daniel Dunbar2009-12-061-4/+9
| | | | | | string in a corner case. llvm-svn: 90703
OpenPOWER on IntegriCloud