aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGCXXExpr.cpp
AgeCommit message (Collapse)Author
2009-11-24Get rid of the ugly CGCXX names and replace them with CGClass, CGExprCXX and ↵Anders Carlsson
CGTemporaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-22Use EmitStoreOfScalar when copying the scalar to the space allocated by 'new'.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Simplify rtti building code a little. Prep for reuse for throw rttiMike Stump
generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89416 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Refactor emitting call to delete operator into common function EmitDeleteCall.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89173 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add rtti support for pointer to data members.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89155 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Fix typo. Thanks Ted.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add typeid for the builtin types. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89028 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Ensure we peer through () when handling typeid(*p).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Since we always have 2 edges, we don't need to reserve 3 slot for theMike Stump
PHI node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Minor CFG refinements for typeid and dynamic_cast.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement dynamic_cast<void*>(E).Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88988 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Audit done, all the required casts are already done.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement most of dynamic_cast. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Implement two-argument form of delete operator.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Peer through refernces for typeid. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Finish off zero check for typeid(*p) so that it will do a __cxa_bad_typeid.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88852 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Implement typeid for class types.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Code gen. For virtual destructor call on array objectsFariborz Jahanian
(still part of pr5472). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Fixes a code gen. bug for array delete operator callFariborz Jahanian
int 32bit abi (pr5472 related). -This line, and those below, will be ignored-- M lib/CodeGen/CGCXXExpr.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88695 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Code gen for arrady delete operator. Fixes pr5472.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88680 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add a special BuildVirtualCall that's going to be used for building calls to ↵Anders Carlsson
destructors. This is needed because when compiling: struct A { virtual ~A(); }; void f(A* a) { delete a; } A's deleting destructor should be called. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10Fix for PR5454: make sure to use the right block as the predecessor in theEli Friedman
generated PHI node for the null check of a new operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01Fix a lame regression in IR gen for C++ delete expressions. PR5102Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83195 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Handle C++ delete expressions when the overloaded delete operator is aDouglas Gregor
"usual deallocation function" with two arguments. CodeGen will have to handle this case specifically, since the value for the second argument (the size of the allocated object) may have to be computed at run time. Fixes the Sema part of PR4782. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83080 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-23Emit new[] cookie when needed.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82642 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-23Basic support for new[].Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82628 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Move codegen of new and delete to CGCXXExpr.cppAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82585 91177308-0d34-0410-b5e6-96231b3b80d8