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. llvm-svn: 111776
Showing
- clang/lib/CodeGen/CGCXX.cpp 16 additions, 25 deletionsclang/lib/CodeGen/CGCXX.cpp
- clang/lib/CodeGen/CGCXXABI.h 10 additions, 15 deletionsclang/lib/CodeGen/CGCXXABI.h
- clang/lib/CodeGen/CGExpr.cpp 19 additions, 17 deletionsclang/lib/CodeGen/CGExpr.cpp
- clang/lib/CodeGen/CGExprAgg.cpp 0 additions, 55 deletionsclang/lib/CodeGen/CGExprAgg.cpp
- clang/lib/CodeGen/CGExprCXX.cpp 1 addition, 2 deletionsclang/lib/CodeGen/CGExprCXX.cpp
- clang/lib/CodeGen/CGExprConstant.cpp 13 additions, 5 deletionsclang/lib/CodeGen/CGExprConstant.cpp
- clang/lib/CodeGen/CGExprScalar.cpp 26 additions, 3 deletionsclang/lib/CodeGen/CGExprScalar.cpp
- clang/lib/CodeGen/CodeGenFunction.cpp 1 addition, 1 deletionclang/lib/CodeGen/CodeGenFunction.cpp
- clang/lib/CodeGen/ItaniumCXXABI.cpp 103 additions, 155 deletionsclang/lib/CodeGen/ItaniumCXXABI.cpp
- clang/lib/CodeGen/MicrosoftCXXABI.cpp 1 addition, 1 deletionclang/lib/CodeGen/MicrosoftCXXABI.cpp
- clang/lib/CodeGen/TargetInfo.cpp 16 additions, 11 deletionsclang/lib/CodeGen/TargetInfo.cpp
- clang/test/CodeGenCXX/member-function-pointers.cpp 22 additions, 30 deletionsclang/test/CodeGenCXX/member-function-pointers.cpp
- clang/test/CodeGenCXX/x86_32-arguments.cpp 1 addition, 1 deletionclang/test/CodeGenCXX/x86_32-arguments.cpp
Loading
Please register or sign in to comment