From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31948 invoked by alias); 21 Jun 2017 20:29:31 -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 31605 invoked by uid 89); 21 Jun 2017 20:29:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=wow X-HELO: kwanyin.sergiodj.net Received: from kwanyin.sergiodj.net (HELO kwanyin.sergiodj.net) (158.69.185.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 21 Jun 2017 20:29:27 +0000 From: Sergio Durigan Junior To: Simon Marchi Cc: Subject: Re: [PATCH 1/4] environ-selftests: Ignore -Wself-move warning References: <1498076108-29914-1-git-send-email-simon.marchi@ericsson.com> <1498076108-29914-2-git-send-email-simon.marchi@ericsson.com> X-URL: https://sergiodj.net Date: Wed, 21 Jun 2017 20:29:00 -0000 In-Reply-To: <1498076108-29914-2-git-send-email-simon.marchi@ericsson.com> (Simon Marchi's message of "Wed, 21 Jun 2017 22:15:05 +0200") Message-ID: <87mv91ccey.fsf@sergiodj.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-06/txt/msg00607.txt.bz2 On Wednesday, June 21 2017, Simon Marchi wrote: > 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 "we would want the code compiler to warn" > if we wrote that in real code. > > I filed a bug in GCC's bugzilla to suggest to add this warning: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81159 Thanks! > gdb/ChangeLog: > > * unittests/environ-selftests.c (run_tests): Ignore -Wself-move > warning. > --- > gdb/unittests/environ-selftests.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/gdb/unittests/environ-selftests.c b/gdb/unittests/environ-selftests.c > index ecc3955..6989c5e 100644 > --- a/gdb/unittests/environ-selftests.c > +++ b/gdb/unittests/environ-selftests.c > @@ -136,7 +136,16 @@ run_tests () > env.clear (); > env.set ("A", "1"); > SELF_CHECK (strcmp (env.get ("A"), "1") == 0); > + > +#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__ */ Wow. I know we've discussed this before, but this is ugly :-/. Anyway, this file is just a unittest, so I'm totally fine with this. Do you think it's worth putting a comment on top, just to explicitly say what this is doing? Otherwise, LGTM. > + > 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 Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/