diff options
author | Craig Topper <craig.topper@intel.com> | 2017-06-12 23:25:15 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-06-12 23:25:15 +0000 |
commit | 6364bfa0f74c62622c4245f44c32e06c868dbdae (patch) | |
tree | 948f7a5d779d413970bc654812423e4a5921fd9b /lldb/packages/Python/lldbsuite/test/expression_command/macros/main.cpp | |
parent | 4c4becf83c1210b4a5b6745ac8e918a9cbfd114d (diff) | |
download | bcm5719-llvm-6364bfa0f74c62622c4245f44c32e06c868dbdae.tar.gz bcm5719-llvm-6364bfa0f74c62622c4245f44c32e06c868dbdae.zip |
[IR] Stop deleting other signatures of User::operator new when we override one signature in a class derived from User
User has 3 signatures for operator new today. They take a single size, a size and a number of users, and a size, number of users, and descriptor size.
Historically there used to only be one signature that took size and a number of uses. Long ago derived classes implemented their own versions that took just a size and would call the size and use count version. Then they left an unimplemented signature for the size and use count signature from User. As we moved to C++11 this unimplemented signature because = delete.
Since then operator new has picked up two new signatures for operator new. But when the 3 argument version was added it was never added to the delete list in all of the derived classes where the 2 argument version is deleted. This makes things inconsistent.
I believe once one version of operator new is created in a derived class name hiding will take care of making all of the base class signatures unavailable. So I don't think the deleted lines are needed at all.
This patch removes all of the deletes in cases where there is an override or there is already a delete of another signature (that should trigger name hiding too).
Differential Revision: https://reviews.llvm.org/D34120
llvm-svn: 305251
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/macros/main.cpp')
0 files changed, 0 insertions, 0 deletions