From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84505 invoked by alias); 22 Jun 2017 08:31:37 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 84478 invoked by uid 89); 22 Jun 2017 08:31:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 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: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Jun 2017 08:31:33 +0000 Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 7D.22.19050.1608B495; Thu, 22 Jun 2017 10:31:30 +0200 (CEST) Received: from EUR02-VE1-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.339.0; Thu, 22 Jun 2017 10:31:29 +0200 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=ericsson.com; Received: from elxacz23q12.ki.sw.ericsson.se (192.176.1.83) by DBXPR07MB320.eurprd07.prod.outlook.com (2a01:111:e400:941d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.6; Thu, 22 Jun 2017 08:31:27 +0000 From: Simon Marchi To: CC: , , Simon Marchi Subject: [PATCH v2] environ-selftests: Ignore -Wself-move warning Date: Thu, 22 Jun 2017 08:31:00 -0000 Message-ID: <1498120280-17996-1-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1498076108-29914-2-git-send-email-simon.marchi@ericsson.com> References: <1498076108-29914-2-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: VI1PR09CA0078.eurprd09.prod.outlook.com (2603:10a6:802:29::22) To DBXPR07MB320.eurprd07.prod.outlook.com (2a01:111:e400:941d::21) X-MS-Office365-Filtering-Correlation-Id: 3d39474c-c58a-49a1-dc7c-08d4b94913e0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DBXPR07MB320; X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB320;3:zzEdwCtySfliwPmDtD5FczzJWkh3ANnpIwrLRKzyvhDN0eqYEOIZoi6n3dQix+j7c3Ku6ldC1nK0Ca2dm/SQOYO3HkdDuRdOgPYtyNHB+3burszGjo/xUKwVU3PrtOArkFbNFT0lqOKD3lyeVSKZ8b4tCRmj4F0TaTWvCVgoXMWJ01fTTmGNsFOvEQMY0AKyStSulWopzlfrZy4WAsCMqKzsBqDi/MFvAQPZfmALwpcPO+16Z4V3zPxhi7JoNikbb+PNWMDt6XdedwXxh3ZmBMmsVkaQYFw0lh7NQjNArr10L+7FoE//w6wv+kbTFct9pjEBNsoAoHjW0Y7KMqyQFA==;25:J6DH7j94DLrW5L4441Os/O8fnXpciWwRTfVIPg6iq3PFGXjyNtwKMDm2VTYrLuaGiDYPzH6A1i2SE60w6wg+f7gqkGvzfyZ4AIZHiUg5Hkwx9lYPATA7YaIFwPxgE+B8mLbfaXdpz42++lC3cbXibncIGiSMImQdJQfXbrtPw5nccl2URihuJq4xL8hD4yIVB85VVsjJLEb+pYfBwWMQx98uw/faj3pqTzMM/+BmRPQ0xYToUiqYeK+iNqh9Sxii3xkG5oSiRK4nfklyHfSwnO8e1GmvuYu9J7h9hQ+biFRP6izMSqmjTd+/Jx35zYFZPMbmG+YiVcI8adK02LLQnrhSgMHAgirDID95glB5S7nlHgL01oAiBvDxGj3XVdqyXHEFiVSXtpF8RomtlLBEXkK2Ehfg4TRkbDjgchqwka/6sizZ7yz/i8cJ0oxjXF5m4hMVCw7UFpkIrJmoWqMaluH+7ud4UoSnygnCMYR2lmk= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DBXPR07MB320: X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB320;31:T/ImrHf9ldUiTlE48mcjh/upfbRes7clu1Wrr8UqzvZfcVSIK/ORBm13FRTxWXfWwLdbSq9OQnuUXXnVrs1ACzqdp+W2OazXpxjSh1Qu7CNyAndNliAIRCgkUyPc9+zFgRjhRyKSwyGPHIV+8UgfSYHPqttHwRgGoP+5/eyHprvz7+DQuwkzy3gOR/PuBrB6tDsNny/baKQqbSOq1T493XnEf0KmpH4tUL8I6qDEmtg=;20:/+g0lzM8Y8OmRnxBTFgMs0OCkmg2HoBwjLoTEan+TT1/a1/5pe6I4FZVUoae1WmeWVfmAd3FJKmoKv4zOzIj0dZvnX1/ywwZ7KIkjUHasLKBgucE4HO+Y3jOqXir5YYEXbot5vSkMWal1lt7jG8zG+8XKNsSX1o+mVsDmylBU/IE8bfhoO0ZcTqvvjp7B4Y6oDQhbJmRRWVwSKACZR2mC1swAYS0o3kxeJZtZVtKkhWc6BL1zkW0+drYVQQQSse3BFcVMs02jXxsZ9VsCglHt3dRlMpJjZDrpyZcmz16OyS4d2T6JSRlJCnbmIDEvzwNEROxnvdvPScMxivtkfNMxxwVKiqWaHIBORyTL30bMNqLF7qXWWTkWG2L+hbi+XZeXoXFKfovx4BcWUYoF8mUaHY68GU8dc2GFQQECwbQ21SQkWOGou5PHluWEw0xRsjqqSsYJgMap0YkiNu2FLf2+5r534f+J3Qf5x1p5WtedWVTpQOQSg/NeIUL1ruZuXxE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030)(183786458502308); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DBXPR07MB320;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DBXPR07MB320; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DBXPR07MB320;4:E7IFsAf+A+bQF1Jkb2LK74CJnPZvGA2ZmZeo7cRke/D?= =?us-ascii?Q?YDU/QqoNibrk3tk6peUNaaE9gRp9l7maWB24nYWORSYkZm6284r1XU+IZcAK?= =?us-ascii?Q?/eLCJyHCu9iWYr+adp2wA8w+t7eQ9tCfO1stm78YsfpXew8G97HzMMUtgP4a?= =?us-ascii?Q?xRdwMr4NWz3MLpdqWOisInbXnD/zzu4Bt3ny4uWLNLMRO2Jizgf8rnQeMsq+?= =?us-ascii?Q?ltirGPGFIBI+ktCRG/lnPPv7/LbzvBp1bUF1zK07yah5ZhkxgmUrZ5nrEhEa?= =?us-ascii?Q?GlkEMB/zJybPN5rCjvw6sgrcoaxyuHKb8Yf6JTd+9TOpY8fnIiAJ34s+2sqb?= =?us-ascii?Q?cnWDkG2wDasEOgC8HfjpHIWnG46h74eUeyo9kQY2r40/2C8xFsBTikhxb86/?= =?us-ascii?Q?YtCeX8Mrw6+SaA/HecUzpe+KE6b+3YaPDx4EqXXEJXtaPpYI3hTmAmULbiCZ?= =?us-ascii?Q?FlFEd99BpXJEN2VEyWBR0KiZHpqN4lG3khzcgUgBRsC3PWgOV5XB/ABO5GKh?= =?us-ascii?Q?XUhcbkx3zuM96li1UH0QH2oxGNYwXY+KGBmzfOfjWpWz0x4jGOUrX1Vq1iIM?= =?us-ascii?Q?QOUm6wR07GyOiNUDqGyueNl6xs5OvZX8P/CO1KWnJaQkrLhI2qDgdx8SQGym?= =?us-ascii?Q?H7zaj7D0n0tRXtnZfiIlkvRel1gB+aUEQeNKHlbV7dIYsm6Ulh+7CxD09tYw?= =?us-ascii?Q?qaMYuaSN+JqFTbMz69Q9I9gQVCeWAX0JmOC0pba8OkV3gl3VeA4dXoucspIB?= =?us-ascii?Q?IXfdYaL1W9IG563f1ko9/mGDBiU3u67vluWdbY0JZ//LhILEQfZvvlU80/3C?= =?us-ascii?Q?5oVKU7OovllnoegfmrC9YNTIHjVdY7GrIZBAC6v7shqb8VX0idgOAXLeqG2H?= =?us-ascii?Q?euXEOfL/+rqtL0sHTsgnD3HrMMKxC75NoaIynR3vKARBAZga9TD9C2tF5+Th?= =?us-ascii?Q?Xc6UIb24lY0pjQ/hboLzFy8AgaBjAbNDMMXb7UnNS9yBgmS/pp+JmvdSBwe7?= =?us-ascii?Q?i7gJv6ot3sc902AdX7UXw89701hNttSD1FeEDzrl7QnU4tN/KfpKv9oLEPWj?= =?us-ascii?Q?SobAuROHiPytH0JBU1ggi0Q7ffkd7uXb58j7pw47Eha+WbpTeffRc2mnR89A?= =?us-ascii?Q?KPHAn0plX4p4pyklKkHkVjb/LZegRzMZbo0RoAtoxNv4XLhimoYmCUhq+CCw?= =?us-ascii?Q?/ZhV3PQ5FO+DXlbFohX0d0eCqZPDLcm2Ke9GGGRwbr04SkyYg6P60XhlPvj5?= =?us-ascii?Q?p/r6YMjijQXYFEzDJodfCveIbMi5/enn/z72W?= X-Forefront-PRVS: 03468CBA43 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39840400002)(39400400002)(39850400002)(39450400003)(39860400002)(39410400002)(76176999)(50986999)(48376002)(66066001)(6486002)(42186005)(110136004)(107886003)(38730400002)(6512007)(4326008)(33646002)(2361001)(50226002)(6116002)(53936002)(6306002)(50466002)(2906002)(2351001)(47776003)(7736002)(5003940100001)(3846002)(6506006)(25786009)(478600001)(86362001)(305945005)(5660300001)(6666003)(8676002)(36756003)(6916009)(2950100002)(81166006)(966005)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:DBXPR07MB320;H:elxacz23q12.ki.sw.ericsson.se;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DBXPR07MB320;23:xgAX779NNI8XgRRnOhGMcPWXES/xCbbNVmQ762avt0?= =?us-ascii?Q?jvi8YfCH2l9oKW/emzC4vd9S6wufV0jVkapZeRzOtPgD1IxpF+kk/G2JDGEZ?= =?us-ascii?Q?38RVJF169O6+V8fL5WV0ww+/1bTWfVIC3ep+i7OEnvBmOmcKNOzfkEzlnAA3?= =?us-ascii?Q?enw+ImZV5W/GoPSfdGBEEgWTL+Pi1A2SZSmJ+LOmOBo7Tm4TtKe1L7Xqyncn?= =?us-ascii?Q?LbxDdA5+fjjszMRlalkhC5woWP740jPsvhbpLqIYoiDAxFB9xwyZ5j+FvIV9?= =?us-ascii?Q?voIC/xkoPfDVSTBtM5ZKuazkZ9o+2lw9L3ZnGxjYxSTnCiXlN2cnAOwXz2Jm?= =?us-ascii?Q?68tcaFOi9MM17aFZKo10tKlrI7fmrpyBRLDgnYLDXefghDFrXIuN+NCJ+H2u?= =?us-ascii?Q?gX42o2zGXG2qvYFt8wL8ug39BlA7zjM7/h9Hz9eawzKEkmcLKiHZH9p8NpBP?= =?us-ascii?Q?j85hIckaQ63WCqC6NV93xn/RCQXMKwIbn2W3a/svx1y2FkLwxrNdEG+yeGhx?= =?us-ascii?Q?iTRR5+CaJEaJb/JMS9+SN0SR/vffYpfhMiJxHXuawcvdUvpGmB10ipFd5QUF?= =?us-ascii?Q?uTpCsPzn/8liLfBQKoqdNnAG/wokKNEd2FMoMrgbSCHtvyQ/kqFuVUONGDT0?= =?us-ascii?Q?FsO+399nW7KIMXOW1fuoGRs+Bm1/OmdYfQQX6itZX8n66EUmGs+fFmCAFwc5?= =?us-ascii?Q?aHq8exjKsfNP91nZaoXKLXQ0YxUUsBsgcNbSe1CWfEOGPH+1zYGqBo9EOv5Y?= =?us-ascii?Q?5doy9KW5qg3EStoL0Yd9w3tgDgJRsGMTQQtAWSWik4G1Tbei5U3Mm2TysowU?= =?us-ascii?Q?1iLSTzraBYVJuUSNg3LB34E/KrhNcPSXXLmdirnXjIkJLQ+I5veKabSwRmfC?= =?us-ascii?Q?Fk71ax0V2pdumP9Ls/ZYA/Odzaeiec6fkDqbh0bnU8r0nzJVVPDmtquG7zdQ?= =?us-ascii?Q?xRblvoZR3wYyZKE6Q5c31jpI0facoVIai9Li87gXNqnPekTSVNbQE2aaJ3yT?= =?us-ascii?Q?IywKdIDbwD/Cf7ds+KN2hF1TK54arjzf+iHq7C3nmzYkII8c3LTNck+MJryS?= =?us-ascii?Q?ch01DoWYU43o2R5vDI9dBFSGzCSS5heA6grT9TT6zwu7yUGOW3QQ1ad179Gc?= =?us-ascii?Q?b28mvJkUgcxk/MXtnOTZjmn96qa06X?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DBXPR07MB320;6:GBrHhiFB864L8+hg3M8poRS1NnG1OU1eYCo3IfuAq5m?= =?us-ascii?Q?BH1Y9SHvInvqjKCi/CFet35f6XVS4EwplVFLa58Rm83ni4uhKrBOpl0nql67?= =?us-ascii?Q?B0ZHnYu1j1CKvCQsnASDWZ7wuhfFqNWRN2PnrXna7Fu634Z/knFPbc1yAw9f?= =?us-ascii?Q?UNGXRez40iN/Lou1cHGMbjlZRTIKvEaQhZ0a/vZnJGfNva7JWo7IjhkG7ULI?= =?us-ascii?Q?aIUJiYF3IEpNgSjflQGsy6XuuE8hg4IuJkYxvArssdpydN0k/qg8pEacQ4Wo?= =?us-ascii?Q?SO6h/hW4a0NsT5cdGXuAC1RaW5Dc0BLVpYVeS1WeDazvhauOYkMGHOrBPX4m?= =?us-ascii?Q?ZbM+86y3ujlZ9IpzBR58V4FbRkzRL3EKiX30El7Ah8M9KC+cX2ZHyfabTSun?= =?us-ascii?Q?URTTvSC3/4PFU8uwuCGJg+YhY5DzO8KnTXG6BWI2hh6kt0AGOj7VpmUdRDzI?= =?us-ascii?Q?XJTVlke+WAc6A+kTEP4MQ2YajojUEE6VXJt55EAdgoLH0Xktk+4FUQKjP0za?= =?us-ascii?Q?lbjGvyCmLM0AL0dEYQkuwX56/HKcghFy2P+N3nlPYw83Yr9f86qtKzHnEX8r?= =?us-ascii?Q?GUjOhXZcgc2AYtrA3mSIopStQSsK3+TWvikJF8bq/2EtylwgKYwjqVCzCPuB?= =?us-ascii?Q?V+RrpBuJ4r27+vSIM7zCtLMj6YfdFShJIB36YMNj0+WzKRRp2srVDdARIq/9?= =?us-ascii?Q?UcKJKKbyJ0eR61IzrInzN4fc0NJo0HcISfyXmvLpTpm3qp4Vq2CPZDgxNK5x?= =?us-ascii?Q?uZaqWiXkO09YLPaStLR65dZIMsxw4rgN24DvVD+HaBcuZEH+jr6tZoehIBUb?= =?us-ascii?Q?hLDJ51d8KHcn72VTi5Lnl1/vo50LMxRbM3CdslF0ShUVKNFKwYI0mopcl6BS?= =?us-ascii?Q?G1VWr3z1hpM+ygAQSurQsItnHuCnf6iF7UaZ1abAgTzk0Vg0aQCnp/hk/s9Y?= =?us-ascii?Q?868J5ZxViZzxF80mfqdsYdeC4dTQdv6zN/YXkp+oK6ueab9UVLGglUXPcgyE?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB320;5:CNTEFOnBENLWONERfafg/yKYxnp3kDyDWT+BOcEkCGpQNe9UMfiCN59MiXFrEo9DVfknSgFp+AQsGVtCinj9NcfCB/TjooSR0pVUKAP6fcKvvXRov8G2/HQ5Jh4EhxMHJC53lDyVSXfJgDLAZQZyuFeCUh/9ZDdZRo2Gasn8hKsvFawFF4Q3TocdkZZD4s2K+tqfDb1Ub7A5XltQ4bOZ4NkmtsN9mKMM1+sb5yODRRdM2gVPYi3xy3hbS/lbrCny7gywMk/gTBbTVl1oLtypwTABxOw7JbEpqKbfh42YNgBRxaIJLFscVEhwMLG1bwQWxcfJUbi6rlqosh/7UBtlfwxaQsp968o9fGKcSLIWlJ4O/EMBpreDFddfe6m3+gwrtn+NbE01i0fjd0gRoCJTMMWkUEbgPC/kqZzTZx8PEJq+G+7vdYWSmkWEYP42I/T/8EoskWUS+QVEgXtFbcka6BYj+rbxNX9LMxHSSIqxG85LlRy/SiCZfF88yHc3CT2u;24:UQu9w7ONOPs1zjiuzcRu/YCoFqr9RXCLvLoxh6RvtqXbTi0G7i7NNuUgspLBoK6PzFvz0iyEM/Efml2MWqFtYtv/OwrLAzMapKECX24JEkw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB320;7:KOZytYHIuhGamk5CjKIN2hCaDDLuT3II/JX99wVH8Xt0fyw2NF7etr9wHEWZQbhjZm7+Md5qyhTC+Kjl0wqM/grS2HzSan5SaotyFOlu+H+VA0Uasr1ei7vbphJ/0og29LQGdpwJLdv+46Dd5YeJf4UopFqFHpJnjDBNPP+4Ge4oa51Yalgt/pf1wtqwCs8R5b7dZgi+5PJNCjyM9KbmRgSjK8VFXyiuG485+JGgnTW/FXpvjS+HAYCOpozQ0HyAT0VKccUAx/CIfCGekeeYRik46AAz90GOj9PMNNGm0ad8yD63vaQX1A+XmjVuTnDLDfrcXVxHehuh2X1S11HTMgmCtnM/Gg8mC9Y76IeGOdSnjLdJ7DdMpmlT89WBWRa3Cge9AsXkEprCoB7ta1T8oESPoVbFAGcoUMdLLncOkYD7BKLx3iDVcFOpLoHqYLzYiVh8mRhIyXx8vcNN+A2Ev4Nm7Ij8hgkB1gog8ktrG+2YEgU7fsnbw2a4XAItJA+VtffpPEJ9WfFTup13T6LjW0lMAP1XEFMj1kkHRIpfBHSmszTRzW8Cu0/EgBTCZDtlb16hU0Rm8NFedt4BIjMU/D0lTD8UjN9d5b8d+CmhWdI5s/dHNz+BjJ3fbw/Sr1IduAt5jCRaaP075EbLOMLbE4VkSn0AIc60hARqT//mjUCqlWKKRcsy0ar1gCCaL80pznPWfAKaPTZz/U3VDadj8WFHwTNt6RAGSeWEcMT23wcXwt1zoG4tz9vGb3WLLTC5zS/R0doptM5EILRkhOgpIyLekM87zQeWw4zVd3Rz5Vs= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2017 08:31:27.8806 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBXPR07MB320 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00622.txt.bz2 New in v2: add wrapper macros in common/diagnostics.h, use them in environ-selftests.c. clang gives this warning: /home/emaisin/src/binutils-gdb/gdb/unittests/environ-selftests.c:139:7: error: explicitly moving variable of type 'gdb_environ' to itself [-Werror,-Wself-move] env = std::move (env); ~~~ ^ ~~~ In this case, ignoring the warning locally is clearly the thing to do, since it warns exactly about the behavior we want to test. We also don't want to disable this globally, because we would want the compiler to warn if we wrote that in real code. I added the file common/diagnostics.h, in which we can put macros used to control compiler diagnostics. This makes the resulting code less cluttered: #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wself-move" #endif /* __clang__ */ env = std::move (env); #ifdef __clang__ #pragma clang diagnostic pop #endif /* __clang__ */ vs DIAG_PUSH_IGNORE_SELF_MOVE env = std::move (env); DIAG_POP_IGNORE_SELF_MOVE I also added a comment in the end, as per Sergio's suggestion. It's clear to see that the warning it turned off without it, but I think it's good to have it to justify why it is. I filed a bug in GCC's bugzilla to suggest to add this warning: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81159 gdb/ChangeLog: * unittests/environ-selftests.c (run_tests): Ignore -Wself-move warning. * common/diagnostics.h: New file. --- gdb/common/diagnostics.h | 35 +++++++++++++++++++++++++++++++++++ gdb/unittests/environ-selftests.c | 7 +++++++ 2 files changed, 42 insertions(+) create mode 100644 gdb/common/diagnostics.h diff --git a/gdb/common/diagnostics.h b/gdb/common/diagnostics.h new file mode 100644 index 0000000..2bf462c --- /dev/null +++ b/gdb/common/diagnostics.h @@ -0,0 +1,35 @@ +/* Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef COMMON_DIAGNOSTICS_H +#define COMMON_DIAGNOSTICS_H + +#if defined (__clang__) + +#define DIAG_PUSH_IGNORE_SELF_MOVE \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wself-move\"") +#define DIAG_POP_IGNORE_SELF_MOVE _Pragma("clang diagnostic pop") + +#else + +#define DIAG_PUSH_IGNORE_SELF_MOVE +#define DIAG_POP_IGNORE_SELF_MOVE + +#endif + +#endif /* COMMON_DIAGNOSTICS_H */ diff --git a/gdb/unittests/environ-selftests.c b/gdb/unittests/environ-selftests.c index ecc3955..fae9bd0 100644 --- a/gdb/unittests/environ-selftests.c +++ b/gdb/unittests/environ-selftests.c @@ -20,6 +20,7 @@ #include "defs.h" #include "selftest.h" #include "common/environ.h" +#include "common/diagnostics.h" namespace selftests { namespace gdb_environ_tests { @@ -136,7 +137,13 @@ run_tests () env.clear (); env.set ("A", "1"); SELF_CHECK (strcmp (env.get ("A"), "1") == 0); + + /* Some compilers warn about moving to self, but that's precisely what we want + to test here, so turn this warning off. */ + DIAG_PUSH_IGNORE_SELF_MOVE env = std::move (env); + DIAG_POP_IGNORE_SELF_MOVE + SELF_CHECK (strcmp (env.get ("A"), "1") == 0); SELF_CHECK (strcmp (env.envp ()[0], "A=1") == 0); SELF_CHECK (env.envp ()[1] == NULL); -- 2.7.4