]> granicus.if.org Git - clang/commit
Experiment with using first-class aggregates to represent member function
authorJohn McCall <rjmccall@apple.com>
Sun, 22 Aug 2010 10:59:02 +0000 (10:59 +0000)
committerJohn McCall <rjmccall@apple.com>
Sun, 22 Aug 2010 10:59:02 +0000 (10:59 +0000)
commitd608cdb7c044365cf4e8764ade1e11e99c176078
tree64048b57b20b73f88b0d6dc576241554929236cf
parente9fd7eb6c67676dc27e84eac429aec4f3be51f26
Experiment with using first-class aggregates to represent member function
pointers.  I find the resulting code to be substantially cleaner, and it
makes it very easy to use the same APIs for data member pointers (which I have
conscientiously avoided here), and it avoids a plethora of potential
inefficiencies due to excessive memory copying, but we'll have to see if it
actually works.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111776 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGCXXABI.h
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/CGExprConstant.cpp
lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/CodeGenFunction.cpp
lib/CodeGen/ItaniumCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/CodeGen/TargetInfo.cpp
test/CodeGenCXX/member-function-pointers.cpp
test/CodeGenCXX/x86_32-arguments.cpp