From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15829 invoked by alias); 17 Nov 2016 20:30:49 -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 15819 invoked by uid 89); 17 Nov 2016 20:30:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.8 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Sure X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 17 Nov 2016 20:30:47 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B861883F40; Thu, 17 Nov 2016 20:30:46 +0000 (UTC) Received: from [127.0.0.1] (ovpn03.gateway.prod.ext.phx2.redhat.com [10.5.9.3]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAHKUjkv019549; Thu, 17 Nov 2016 15:30:46 -0500 Subject: Re: [PATCH 2/3] Fix copy_bitwise() To: Andreas Arnez References: <1479135786-31150-1-git-send-email-arnez@linux.vnet.ibm.com> <1479135786-31150-3-git-send-email-arnez@linux.vnet.ibm.com> <6032efa2-828d-7423-4720-6925a9b4ea4b@redhat.com> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: Date: Thu, 17 Nov 2016 20:30:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-11/txt/msg00497.txt.bz2 On 11/17/2016 07:36 PM, Andreas Arnez wrote: > On Tue, Nov 15 2016, Pedro Alves wrote: > >> Looks like the sort of function that should be possible to >> cover all sorts of inputs/outputs with unit tests. Aligned, misaligned, >> big/little endian, etc., that sort of thing. That'd help >> a lot with ensuring rewrites behave as intended. Would you feel like >> including some? > > Sure. See the patch below, which I'd insert after the one that fixes > copy_bitwise. Thanks! > With that added, is the series OK to apply? I'm feeling dense and I can't make sense of the new test. :-/ Can you add some more comments? Is there some logic behind the numbers of the data1/data2 arrays? Some pattern between them? E.g., it'd be nice to explain the logic between the steps check_copy_bitwise is doing. A couple other minor comments: > +#if GDB_SELF_TEST > + Please add: namespace selftests { like utils-selftests.c does. > > + a[len] = b[len] = '\0'; > + if (strcmp (a, b)) strcmp (...) != 0 > + error (_("copy_bitwise %s != %s (%u+%u -> %u)"), > + a, b, source_offset, nbits, dest_offset); > +} > + > + enum { max_nbits = 24, max_offs = 8 }; IN C++11 we can express a compile-time integer directly with constexpr, not need for enum hacks any longer: constexpr int max_nbits = 24; Thanks, Pedro Alves