Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Don't force the emission of destructor definitions. | Eli Friedman | 2009-12-15 | 1 | -3/+3 | |
| | | | | llvm-svn: 91394 | |||||
* | More array cookie improvements. | Anders Carlsson | 2009-12-13 | 1 | -8/+10 | |
| | | | | llvm-svn: 91247 | |||||
* | Random string-related cleanups. | Benjamin Kramer | 2009-12-11 | 1 | -3/+2 | |
| | | | | llvm-svn: 91119 | |||||
* | Get rid of static variable. | Eli Friedman | 2009-12-10 | 1 | -2/+1 | |
| | | | | llvm-svn: 91041 | |||||
* | Move more decl related functions to CGDeclCXX.cpp | Anders Carlsson | 2009-12-10 | 1 | -117/+0 | |
| | | | | llvm-svn: 91012 | |||||
* | Add CGDeclCXX.cpp and move EmitCXXGlobalVarDeclInit there. | Anders Carlsson | 2009-12-10 | 1 | -45/+0 | |
| | | | | llvm-svn: 91006 | |||||
* | Fix spacing. | Mike Stump | 2009-12-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 91000 | |||||
* | Build fix. | Eli Friedman | 2009-12-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 90841 | |||||
* | Fix for PR5707: make sure implicit copy constructors initialize the vtable | Eli Friedman | 2009-12-08 | 1 | -0/+6 | |
| | | | | | | pointer. llvm-svn: 90840 | |||||
* | Fix some direct checks of expressions which might be surrounded by parentheses. | Eli Friedman | 2009-12-08 | 1 | -3/+4 | |
| | | | | llvm-svn: 90825 | |||||
* | Make copy assignment operator synthesis not explode for classes with complex | Eli Friedman | 2009-12-08 | 1 | -2/+10 | |
| | | | | | | | | | | | | or non-record aggregate members. It might be worth spending some time to optimize this code (and the parallel code for copy constructors) to memcpy in larger chunks, rather than copying one member at a time. Not sure exactly how beneficial that would be, but it seems like could help for large classes with, for example, a vtable pointer forcing the generation of a copy constructor. llvm-svn: 90823 | |||||
* | A bunch more thunk fixes from misc testing. | Eli Friedman | 2009-12-07 | 1 | -20/+26 | |
| | | | | | | (Yes, I do intend to commit some tests for this.) llvm-svn: 90818 | |||||
* | Work-in-progess rewrite of thunks: move thunk generation outside of vtable | Eli Friedman | 2009-12-06 | 1 | -0/+96 | |
| | | | | | | | generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. llvm-svn: 90722 | |||||
* | CodeGenModule::GenerateVtable now returns a pointer directly to the vtable ↵ | Anders Carlsson | 2009-12-05 | 1 | -9/+14 | |
| | | | | | | and not to the address point. llvm-svn: 90676 | |||||
* | Simplify some code. | Anders Carlsson | 2009-12-05 | 1 | -11/+11 | |
| | | | | llvm-svn: 90670 | |||||
* | When generating a virtual destructor, don't try to make a virtual call to ↵ | Anders Carlsson | 2009-12-04 | 1 | -10/+18 | |
| | | | | | | | | the base class destructor because then we'll just re-enter the same destructor! This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now. llvm-svn: 90578 | |||||
* | Fix thunk generation for thunks with a parameter with reference type. | Eli Friedman | 2009-12-03 | 1 | -1/+2 | |
| | | | | llvm-svn: 90412 | |||||
* | Minor cleanup. | Eli Friedman | 2009-12-03 | 1 | -9/+4 | |
| | | | | llvm-svn: 90411 | |||||
* | Add support for thunking dtors. Oh why does this make my head hurt? | Mike Stump | 2009-12-03 | 1 | -10/+22 | |
| | | | | llvm-svn: 90409 | |||||
* | Added an assert. | Fariborz Jahanian | 2009-12-01 | 1 | -1/+4 | |
| | | | | llvm-svn: 90285 | |||||
* | More support for virtual destructor calls. | Fariborz Jahanian | 2009-11-30 | 1 | -15/+26 | |
| | | | | | | Fixes pr5619 llvm-svn: 90158 | |||||
* | Don't pass false (default) for isVolatile parameter to CreateStore. | Daniel Dunbar | 2009-11-29 | 1 | -8/+8 | |
| | | | | llvm-svn: 90094 | |||||
* | Don't build the entire vtable when all we want is the index of a virtual method. | Anders Carlsson | 2009-11-27 | 1 | -3/+3 | |
| | | | | llvm-svn: 90017 | |||||
* | Fix for PR5594: use EmitGlobalDefinition instead of EmitCXXDestructor so that | Eli Friedman | 2009-11-27 | 1 | -3/+3 | |
| | | | | | | we check whether the vtable needs to be generated. llvm-svn: 89984 | |||||
* | Remove unused variable. | Eli Friedman | 2009-11-26 | 1 | -1/+0 | |
| | | | | llvm-svn: 89945 | |||||
* | Shortcut explicit calls to a trivial copy assignment operator. | Eli Friedman | 2009-11-26 | 1 | -0/+8 | |
| | | | | llvm-svn: 89944 | |||||
* | Simplify and fix up the handling of implicit constructors, copy assignment | Eli Friedman | 2009-11-26 | 1 | -5/+9 | |
| | | | | | | | | operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. llvm-svn: 89943 | |||||
* | Add a CovariantThunkAdjustment struct that represents the adjustments needed ↵ | Anders Carlsson | 2009-11-26 | 1 | -50/+58 | |
| | | | | | | for a covariant thunk. llvm-svn: 89933 | |||||
* | Move the mangler into the CodeGen namespace. Change mangleThunk to take a ↵ | Anders Carlsson | 2009-11-26 | 1 | -2/+1 | |
| | | | | | | ThunkAdjustment. llvm-svn: 89930 | |||||
* | Add a ThunkAdjustment struct which holds a non-virtual and a virtual ↵ | Anders Carlsson | 2009-11-26 | 1 | -9/+15 | |
| | | | | | | adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925 | |||||
* | Add VTT parameter to base ctors/dtors with virtual bases. (They aren't used ↵ | Anders Carlsson | 2009-11-25 | 1 | -2/+2 | |
| | | | | | | yet). llvm-svn: 89835 | |||||
* | Handle references correctly when synthesizing copy constructors. | Anders Carlsson | 2009-11-24 | 1 | -8/+28 | |
| | | | | | | | | | | | With this change, the clang-on-clang test result is now Expected Passes : 224 Unexpected Failures: 37 Which means that we can compile over 80% of clang with clang! :) llvm-svn: 89799 | |||||
* | Handle cases where we're constructing an array of objects and the ↵ | Anders Carlsson | 2009-11-24 | 1 | -8/+32 | |
| | | | | | | constructor has default arguments. llvm-svn: 89783 | |||||
* | Handle base-to-derived casts. Will land test case shortly. | Anders Carlsson | 2009-11-23 | 1 | -14/+14 | |
| | | | | llvm-svn: 89678 | |||||
* | IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into, | Daniel Dunbar | 2009-11-21 | 1 | -12/+7 | |
| | | | | | | | instead of requiring clients to make a raw_svector_ostream, which is just an implementation detail. llvm-svn: 89548 | |||||
* | Sink free mangle* methods into MangleContext. | Daniel Dunbar | 2009-11-21 | 1 | -5/+5 | |
| | | | | llvm-svn: 89547 | |||||
* | Checkpoint current work. WIP. | Mike Stump | 2009-11-20 | 1 | -6/+0 | |
| | | | | llvm-svn: 89513 | |||||
* | Reflow to fit 80-col. | Mike Stump | 2009-11-18 | 1 | -2/+2 | |
| | | | | llvm-svn: 89222 | |||||
* | Refactor emitting call to delete operator into common function EmitDeleteCall. | Eli Friedman | 2009-11-18 | 1 | -20/+3 | |
| | | | | llvm-svn: 89173 | |||||
* | Unify the way destructor epilogues are generated for synthesized and regular ↵ | Anders Carlsson | 2009-11-17 | 1 | -103/+79 | |
| | | | | | | destructors. Also fix PR5529. llvm-svn: 89034 | |||||
* | Fix up EmitMemberInitializer to handle many more cases. | Eli Friedman | 2009-11-16 | 1 | -11/+24 | |
| | | | | llvm-svn: 88999 | |||||
* | Reorganize EmitMemberInitializer to put anonymous unions on the common codepath. | Eli Friedman | 2009-11-16 | 1 | -29/+31 | |
| | | | | llvm-svn: 88995 | |||||
* | Make member initializers for union members work correctly. | Eli Friedman | 2009-11-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 88989 | |||||
* | Implement a few more cases for copy constructor synthesis. | Eli Friedman | 2009-11-16 | 1 | -2/+10 | |
| | | | | llvm-svn: 88971 | |||||
* | Fix a couple of cases where we weren't generating the right kind of call | Eli Friedman | 2009-11-16 | 1 | -8/+19 | |
| | | | | | | for a call to a virtual function. llvm-svn: 88891 | |||||
* | When generating the deleting ctor, emit a call to delete. | Anders Carlsson | 2009-11-15 | 1 | -4/+24 | |
| | | | | llvm-svn: 88878 | |||||
* | PR5483: Generate missing form of destructor when it is virtual. (Someone | Eli Friedman | 2009-11-14 | 1 | -0/+2 | |
| | | | | | | | more familiar with this stuff should double-check that there isn't some more general rule; this is purely from inspecting g++ output.) llvm-svn: 88755 | |||||
* | Code gen. For virtual destructor call on array objects | Fariborz Jahanian | 2009-11-13 | 1 | -1/+10 | |
| | | | | | | (still part of pr5472). llvm-svn: 88712 | |||||
* | Code gen for arrady delete operator. Fixes pr5472. | Fariborz Jahanian | 2009-11-13 | 1 | -4/+13 | |
| | | | | llvm-svn: 88680 | |||||
* | Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls ↵ | Anders Carlsson | 2009-11-13 | 1 | -1/+1 | |
| | | | | | | | | so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review. With this change, FileCheck builds and runs the clang test suite without failures! llvm-svn: 88663 |