From patchwork Thu Dec 7 16:49:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24779 Received: (qmail 32263 invoked by alias); 7 Dec 2017 16:50:00 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 32215 invoked by uid 89); 7 Dec 2017 16:49:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 07 Dec 2017 16:49:58 +0000 Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 21.AA.00337.331792A5; Thu, 7 Dec 2017 17:49:56 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.54) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 7 Dec 2017 17:49:55 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ericsson.se (129.192.64.65) by AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.3; Thu, 7 Dec 2017 16:49:53 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [pushed] Add virtual destructor to selftest Date: Thu, 7 Dec 2017 11:49:44 -0500 Message-ID: <1512665384-25819-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: BN4PR12CA0015.namprd12.prod.outlook.com (2603:10b6:403:2::25) To AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 391876ba-48ed-4fe1-6fa1-08d53d928ac1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603286); SRVR:AMSPR07MB312; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 3:hSKV+9LMKlyBMPkXIfbWx9M7ONBPhS35uQ29N2TOr0f99bB4DgubHLBMFlBMqZwGsWW2S6NcQ7vA/VXlUHBjWfiy91lrNJaWcPcahNHBbVkEAsEM2q36u+hanBiQtvYWTa5BMoJSCtGeb1XEMWU8TBx58qvzaXb5Wg3PUP8iUjNGJ4iM18Png5Z3ZXH/IbvWpGmMXDe5p5JV7McEGkKDMuuVZrvv48/kKoP1hoVYMuwej2n/y58fa8q9KSS1n1oy; 25:IrwtbM28UJsFleT5O1MHLDzCdvVFb6mh+fnS+h7+t92aNf+Vw6ltL10wMNZ6Ljljjn9ihxgXWONHDuwxcRzgSQz/XynDZGcv+2VBxgvNofdKWTtPxaK8bM/z9nXqJwmXcxzDT/if4/GHvm5Iag7cSQn2TV0ttSC9F38ujm+LgdBju6Pvf44aeCGovmGOEKuU2sb3o/PFatlskbJuYoGyvSwiUABX2hSqfVbFFTaZHX9oSGf5GcWALFwsKzsM5kooiC3z0sDMqGYwIs7+YE87R1BGv5j8JzBHir0knoGX7AwH4l2Rx7BPSIZiSjkpBNSAo/4NzgGotMrhNqmry6EaRg==; 31:Vjl9HrpAzWVbojq/BjMM1QEsWQXUc+QANItJ5d58HkKoVEm2D6V+w9oo/J14mZqshv+i+TiIaFTLsTH2rfsMePiMT6090DJvGr4J/2MVg304/AoJxh8U57Et6gDsBvwFLTPPD2uKcwZwUOJ1M5a4NBVNBizQ7CtnJXdJFor1r3lhJSfSrdIl2yjnp8hEVV2KKqRyoLm0bBgux0HWa/xSjAjFLD1t3AfUXEmbipq/RQ4= X-MS-TrafficTypeDiagnostic: AMSPR07MB312: X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 20:O7tTGeHUSxEr0eQ8KdTeTZE13SDZUGRR8if5013w9t4KYi5cXJAW+/Pigr/J4CtzO4tE/+9L5nU7qacvlZWuaxZyr+wtLJExWL6Pe68w1+SNolXrwy3nkHGYR5ofZCPjf1RTbZkAixzqd42i5Y96OKlsfy4n86nY7ABiIRxGTdpg1AjGPWvIIBWwEpw8f+0XHWk3mU8DqLDuFEpZJtZgGyhFQ0Bv6eqKVXw/Jv5akloUBf15rFo+rNwreXX81YTIfcHTVQ0ABSC8FLmqbyyOBkKWEbdGIglAjRBbCS5B3t8p2XPVs1y9Wv/0oOZMFJ+okRoj0MzdEiAAox3cfwd1ZHzVrp18MgOULgutn4hLXcCORpoTcMsEVCMhn+eEi0otuMZKutw/qs6xBbTKrbXSFfjU0StV5fHmeUGnYrf3JavhtNuZIoAvRGS6iKdEfWjmvftJaFcPI801QGMVyTlrmy2Sih3j/NLSZDMAP7yUMO6NKWkLZdBcQclxyUEN+JXy; 4:fWvwqiXHClzEncE+lgof2prAWk1Uq+MjpH98oxCsjAbdKyzpXlOqtD0fNL5J8IOs/nqO9Yj2pqikZVYVBz3du3XyE5hrcOZEUkURzxPJV41XfI4x4tc3+rHCJRkL5lGidPEZeARkFVL9Qu/ULZJrSQ9VFd2pmeR8Oi1wHmvT9Nc1SAaOKQSeFUeT9/2/PF9S8Sop3x3NrrtMZSu9WJo7bhKD5di5ixk0yTCFvWw7s1UkQZrUlGfOm+P/zPDKtL/kQSWmcn8oClr8ZIG9b30ud3oo1NsS6Ah5evgg+LnZ5z05EhbfpQKHX4iQbhka6s4y X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(37575265505322); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231022)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(20161123558100)(6072148)(201708071742011); SRVR:AMSPR07MB312; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AMSPR07MB312; X-Forefront-PRVS: 05143A8241 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(376002)(39860400002)(346002)(377424004)(199004)(189003)(54534003)(50466002)(5660300001)(50226002)(81156014)(53416004)(48376002)(8676002)(105586002)(52116002)(36756003)(97736004)(68736007)(7736002)(81166006)(25786009)(51416003)(47776003)(2906002)(305945005)(106356001)(2361001)(53936002)(107886003)(6512007)(8936002)(478600001)(6916009)(6666003)(86362001)(316002)(16526018)(69596002)(6116002)(6506006)(6486002)(33646002)(2351001)(3846002)(16586007)(101416001)(66066001)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR07MB312; H:elxacz23q12.ericsson.se; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AMSPR07MB312; 23:zKWjwj5Ub7XlK4hN5fBEKxsQ6992SB6emQuO6Tg+iq?= =?us-ascii?Q?QFFrsouhh6AacHSfvBYHueiRu9r6xNv7qhxbonEckZK0cAke4XufJJlBkIQZ?= =?us-ascii?Q?MzYk/pY/HeZ7CktfpHcWXVHoytXyW5UEKhXZTZfDftKUrGPqGWQtTdh6w3aN?= =?us-ascii?Q?Ev1dpHJaQKOuQxWR4OlXQp9euL0bnhGDp0xjPksm7KrMY40Oac1TuwdEVmxi?= =?us-ascii?Q?UkIixaotqtUMUC0BBUB7Vi8BYTduHk1clwRpu4O/blT4oKSs3Lf/QSARZPiq?= =?us-ascii?Q?3XJ0Ioo8qdL1uYFfuy+5re6WgtTxo6xFH5oXEr/lYlsSIvoIUpT7wmRyfI4F?= =?us-ascii?Q?UtrPsyzc4al01AE5g40RSHJXCKDIwisX4yQKczpRA17Jeb1vb8HpAyN8XLNn?= =?us-ascii?Q?S4gcM/5ame6bTepvfHvksKbiVjHSmAba7G2t3Xk85lRjdkDo2ebR/iqrS6lG?= =?us-ascii?Q?qXmusv1QP/EqPafG0m/EljuTCmXQN4dwWDRXnX07H/QPasXgzy8h4U4MRBrI?= =?us-ascii?Q?yUFNrODyDBUZmuse70JjvrilaGfNj5ZKxOXFSW7jPM9WkJ10TdGI4KlRP7pq?= =?us-ascii?Q?XaJstcqL0zEfGUcV6HXPFwrM13FDYhJTpS/1yXbiaQDF9PkGjUZVflGW3IdH?= =?us-ascii?Q?yugr/RLIkk62es89HO8aHs71RF+3rHpaQJli9nLvwR1w2Byc/JkMEA+QYfAE?= =?us-ascii?Q?4Eq7iDLKAeh1tWc9kAIkdjwK+WeIR4eTTFBimkJXTHFbsFRafp+zSV5/qfAp?= =?us-ascii?Q?GVzWWdWUVAO0dBrasbwx8/FqA+4maLVPnZKDRZh9gzKbQHzd8K/eiPRZ5v7i?= =?us-ascii?Q?idG8P8OexDxPT/ABg1Dr87yvnEqCxSWn2XYj/aP6sx0PoEz+U2Jo4/+Ny5Xp?= =?us-ascii?Q?a3ztYbpKHZjjYOeWVPddtDhT5KW4yo8DwtY1/pCvWyO3KEfbMnAXqL5Ywr00?= =?us-ascii?Q?R8ACdMX2xUwKlpL+6Cmc8KgCJkASCCpU1oM/pIF6dWq/OgipetmHUxt00tKn?= =?us-ascii?Q?Rqpe0Uwiw8NAVQLfUED6UoRcbeTtdy4Dc3t52P3C/Ga/eS5aMH7vVE7VPo/C?= =?us-ascii?Q?CZAYvDX9AvK20RwH2qxFTmG2b+HTn2lPcjJzEnvxJ43ThwMBuIJT4xpRUAuu?= =?us-ascii?Q?Lnk10yjoyNCBKpFma7hE+RgV5t5sBUO+n34XFLTVxC6sZZ1YSjPA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB312; 6:zDLxNVR9vm2b/gRcx6nzy24WsFXuiG9Gq4xIAQYyk5dr0AkPNNzJxhG/tTdHgPQ+66g7f0ak425FO/RWTt6vHbt6oPCv/maBBU7BQRv+KLYN27jTenOLuwo+E8AIWrzwof9Fku3smFcH58tJ7TwxW/HCbr8Bea0zSLdh4pjZkeDAVJZTXg7cn396sgPXeSt1UvjM6KjhNKaZhcEgj/Jwl/zIwdpboZqg46bom98Sfr9k9lfn50EyrD66sfHNlkjIDxYN88lZwstgiLwyNxUz7N+0XlV2PV3FLLvRzaGmO8J35MgpZ6upEFCcyOAbicFcdqzeu4ZVT9YbKEG4TLiBTFz/XAKPTPN5JkT3wJ+p4mQ=; 5:QvDjzfOAZCxK2eQjeDmsmadDxLjyph1pptG/jHRd1XnRtGNcuOxWhP0vs7Rfyfze33ODdMN8ijF4OlF5Dr6kfxXNNEE/zaRDZ73tjApId2G2rkAGfmgXLLUo+wdZ9Bzy+NYf/miwwTAw9u6vlFyDPVqbdN9zxelwAW+Mf+akRkw=; 24:fEC1PAx1PjH4HeAq94JXfvBY/PE5I3Ibj+5aX6VtcThevZAB8qcGgpk/VMn/ppcDJbDCq7V/gkmt5ColRoXTRmefYtSIhOEgShGvnlZxals=; 7:olfil1epSRIYZJEeA7PPxfWmejq/EnTarFnTYWdGcpBlT8ydMbLcZJvpEKTz4cvjstCtcbBeEcRhZ5HREZOf+5loSj5w2ZkhtFTTr5nnWn0E2NAEyEUeL8ESHKY9emuSA41F7fv/0rvUzb/TC1t3z6Q3etjJB3tQvO1EIhcB91GOvbtHXRbywOcMNQJnI2S8i4Sh4sF5elTCAuX0A5JReM647ksYPh+Vo5dHQ8lXukIRqC4mWoAmTUudgi1W3YCq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2017 16:49:53.9620 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 391876ba-48ed-4fe1-6fa1-08d53d928ac1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB312 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes Clang 6 shows this warning In file included from /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:19: In file included from /home/emaisin/src/binutils-gdb/gdb/common/common-defs.h:92: In file included from /home/emaisin/src/binutils-gdb/gdb/common/gdb_unique_ptr.h:23: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/memory:81: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:76:2: error: delete called on 'selftests::selftest' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] delete __ptr; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:236:4: note: in instantiation of member function 'std::default_delete::operator()' requested here get_deleter()(__ptr); ^ /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:57:17: note: in instantiation of member function 'std::unique_ptr >::~unique_ptr' requested here tests[name] = std::unique_ptr (test); ^ The error is legitimate, we (the unique_ptr) are deleting selftest objects through the base pointer, so technically the destructor should be virtual, so that the destructor of the subclass is invoked. gdb/ChangeLog: * common/selftest.h (struct selftest): Add virtual destructor. --- gdb/ChangeLog | 4 ++++ gdb/common/selftest.h | 1 + 2 files changed, 5 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9ba0254..54aec7f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-12-07 Simon Marchi + + * common/selftest.h (struct selftest): Add virtual destructor. + 2017-12-07 Phil Muldoon * python/py-breakpoint.c (bppy_init): Use string_to_event_location diff --git a/gdb/common/selftest.h b/gdb/common/selftest.h index 35a344f..7e91bd4 100644 --- a/gdb/common/selftest.h +++ b/gdb/common/selftest.h @@ -31,6 +31,7 @@ namespace selftests struct selftest { + virtual ~selftest () = default; virtual void operator() () const = 0; };