From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 3808e012 for ; Thu, 4 Apr 2019 10:22:29 +0000 (UTC) Received: (qmail 9122 invoked by alias); 4 Apr 2019 10:22:12 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 44208 Received: (qmail 5147 invoked by uid 1010); 4 Apr 2019 10:22:12 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.1/25405. spamassassin: 3.4.2. Clear:RC:0(210.118.77.12):SA:0(-7.0/5.0):. Processed in 2.200951 secs); 04 Apr 2019 10:22:12 -0000 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.samsung.com designates 210.118.77.12 as permitted sender) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20190404102133euoutp02c1e63fe319c5d460dc10cee06f0f612a~SPkZ3eubY0839308393euoutp02S DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1554373293; bh=lHJauY59VumnyP6H3KIKDOWHf6EsrmBHGwphKhyufUY=; h=Subject:From:To:Date:In-Reply-To:References:From; b=MnyH1FrFamQRk/+RYXDGO+4p+PpUZEo/kesw2Nw9eFViVmyOEICL75rQ8RbQJ/ixj Bv3wtMfQzA5Fck6MLbJopbiBNL7GBf+LtJf5EgxCZW/vcigXfaIVk+CSLgYu1LHllX lyBkCIW26fUFWJitOkaeYpZ2c13OP/XqwhEu+xO8= X-AuditID: cbfec7f2-f13ff700000010ca-6c-5ca5daac56dc Message-ID: <1554373291.5874.3.camel@samsung.com> Subject: Re: -Wrestrict warning on cc 8.3.0 From: Peter Stephenson To: Date: Thu, 4 Apr 2019 11:21:31 +0100 In-Reply-To: X-Mailer: Evolution 3.18.5.2-0ubuntu3.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRmVeSWpSXmKPExsWy7djP87prby2NMfh2jtHiYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZVxes4mtoF2w4vWL12wNjH95uxg5OSQETCRW3JrE0sXIxSEk sIJRounSCUYIp49J4tPyL2wQTi+TxJfeTnaYllebm1khEssZJab/fscKV7Vr+3eoYacZJWY8 3M0M4ZxnlHjx8QELSD+vgKHElpZLrCC2sIC2xOENMxhBbDag+NRNs8FsEQFJiWvNp8FsFgEV iffnvjGD2JwCgRLN09+zQNyhIbHh5jEmiJmCEidnPgGLMwvISzRvnQ22WELgPpvEh0MgCziA HBeJrzuheoUlXh3fAvWPjMTpyT0sEPXtjBJrJr1mh3B6GCU2Hb3DCFFlLdF3+yLYIGYBTYn1 u/QhZjpK7L3CDWHySdx4KwhxAp/EpG3TmSHCvBIdbUIQM9QkdjRthTpGRuLpGoUJjEqzkNw/ C8n9sxA2LWBkXsUonlpanJueWmyYl1quV5yYW1yal66XnJ+7iRGYCk7/O/5pB+PXS0mHGAU4 GJV4eH+sXhIjxJpYVlyZe4hRgoNZSYTX9TVQiDclsbIqtSg/vqg0J7X4EKM0B4uSOG81w4No IYH0xJLU7NTUgtQimCwTB6dUA6Pw+p8JhgL3/k+rCk6Mi567lPVobUjr0vdf9dNdMlx2/d67 /H7Pn6Y/hq3F22TdNv47YiFuuEykUtVsos0Tz7yi1aUqGw5wCz3KEorUOLjXUjdy6YG++fIr q7aubc7r0rxTVuH+lmfqEYmmJo51LRc25cQG766a8bJ3+uLmr8fKmNUer/CR6FJiKc5INNRi LipOBAAw4jreAQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42I5/e/4Xd01t5bGGNz7w2dxsPkhkwOjx6qD H5gCGKP0bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0 Mi6v2cRW0C5Y8frFa7YGxr+8XYycHBICJhKvNjezdjFycQgJLGWU6N6ylRUiISPx6cpHdghb WOLPtS42iKJuJokDLcdZIJzTjBIHps1ihnDOM0pMPt8M1s4rYCixpeUSmC0soC1xeMMMRhCb DSg+ddNsMFtEQFLiWvNpMJtFQEXi/blvzCA2p0CgRPP09yxwN62YuRrsDmYBTYnW7b+hbtKQ 2HDzGBPEMkGJkzOfsEDUyEs0b53NPIFRaBaSlllIymYhKVvAyLyKUSS1tDg3PbfYUK84Mbe4 NC9dLzk/dxMjMAK2Hfu5eQfjpY3BhxgFOBiVeHh/rF4SI8SaWFZcmXuIUYKDWUmE1/U1UIg3 JbGyKrUoP76oNCe1+BCjKdBHE5mlRJPzgdGZVxJvaGpobmFpaG5sbmxmoSTOe96gMkpIID2x JDU7NbUgtQimj4mDU6qBkePrHtV5rjqqrSsdMtRyvkz7O6Xu5UehtmUC89xPO6vet+mYOpfj +YUuxrs7dm16cJBt5iRL2VdrizZlbfG89/4c59SMX+9E78/7m/mu1vTJxhO1N5frnv1oqBVf eONejNHXRWv4dyy57ZZ8PfiMsLd4Ts3yaGkxo1DmhLLl8WdFLmz6pj9f/pYSS3FGoqEWc1Fx IgBJr4oIlgIAAA== X-CMS-MailID: 20190404102132eucas1p2ca58e33d907ecb745091e8d400a2c385 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20190403190049epcas3p4c02406857f7f26510ea8969c969a655e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190403190049epcas3p4c02406857f7f26510ea8969c969a655e References: On Wed, 2019-04-03 at 20:59 +0200, Wesley Schwengle wrote: > During a make of the latest master I got the following warning: >  > gcc -c -I. -I../../Src -I../../Src -I../../Src/Zle -I.  -DHAVE_CONFIG_H > -DMODULE -Wall -Wmissing-prototypes -O2 -fPIC -o compctl..o compctl.c > compctl.c: In function ‘makecomplistflags.isra.6’: > compctl.c:3340:7: warning: ‘strcpy’ accessing 1 byte at offsets [0, > 9223372036854775807] and [0,9223372036854775807] may overlap 1 byte at > offset 0 [-Wrestrict] > strcpy(p, p + bl); > ^~~~~~~~~~~~~~~~~ > rm -f compctl.so This warning is thoroughly opaque --- and not occurring with a locally compiled gcc 8.3.0 on my Ubuntu 16.04 64-bit Intel system --- but the code isn't exactly crystal clear, either (subtracting a number off then adding it immediately back on again isn't generally regarded as great style), and it's quite possible the copy is overlapping.  Also, the last person to worry about code optimisation in compctl emigrated to the Undying Lands a decade ago (maybe I can still find the postcard...) Can somebody verify the following is equivalent apart from dealing with a possible overlapping copy?  I've no way of ensuring this code gets exercised. Separately, I seem to be having severe problems with --enable-zsh-mem with that configuration.  It looked like some failed optimisation involving realloc().  I think we had something similar a while ago? Cheers pws diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index fe87409..f963d57 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -3331,13 +3331,11 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd)       zlemetaline[end] = save;       if (brend) {   Brinfo bp; - char *p; - int bl;     for (bp = brend; bp; bp = bp->next) { -     p = lpsuf + (we - zlemetacs) - bp->qpos - - (bl = strlen(bp->str)); -     strcpy(p, p + bl); +     char *p2 = lpsuf + (we - zlemetacs) - bp->qpos; +     char *p1 = p2 - strlen(bp->str); +     memmove(p1, p2, strlen(p2) + 1);   }       }       if (!(lpsuf = strchr(lpsuf, '/')) && sf2)