From patchwork Sun Aug 6 08:44:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 798344 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-459890-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="vhNYE70X"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xQDlB2HY9z9s7C for ; Sun, 6 Aug 2017 18:45:40 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=cknToFfkg9UxYpGeq P6gEhogvlcLPTadwSMRGFD6O/qQkKw9pVOA1maeq4EIPPEogUklZ7m9fijChBkwi 1US7xPd/bUhUf/NAdyddSqPHglFzV8yz1uNji1KhcpcQoaQTUYU7u2s/nSWGrhh6 WlDx/HAgNb/1F9oQ2ac3sSHIxc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=xYUPWc0cstUNkfd7tP34UFX 4K3o=; b=vhNYE70XS6sREQ+12qYWYQm7BsivHL83+bHCe/n1dK6CRGXHRxiNjgb pKu73ujv9Y/e115ler6p46cD+CwA086Pj/dJhzXFy7zJBTCArTGe62Qp/HAH0Bu+ jtyrawnFSWAcQPQhWrOW2zMLv5o0ObBuprMwlXBACNJg9tRgSFN4= Received: (qmail 110536 invoked by alias); 6 Aug 2017 08:45:17 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 87722 invoked by uid 89); 6 Aug 2017 08:44:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 06 Aug 2017 08:44:54 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=SVR-IES-MBX-04.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1deHB4-0004Cg-5a from Tom_deVries@mentor.com ; Sun, 06 Aug 2017 01:44:50 -0700 Received: from [127.0.0.1] (137.202.0.87) by SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Sun, 6 Aug 2017 09:44:45 +0100 Subject: Re: [PATCH][Testsuite] Use user defined memmove in gcc.c-torture/execute/builtins/memops-asm-lib.c To: Renlin Li , "gcc-patches@gcc.gnu.org" , Martin Sebor , References: <594CDD3A.9090902@foss.arm.com> From: Tom de Vries Message-ID: Date: Sun, 6 Aug 2017 10:44:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <594CDD3A.9090902@foss.arm.com> X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) On 06/23/2017 11:19 AM, Renlin Li wrote: > +__attribute__ ((used)) > +void > +my_memmove (void *d, const void *s, size_t n) > +{ > + char *dst = (char *) d; > + const char *src = (const char *) s; > + if (src >= dst) > + while (n--) > + *dst++ = *src++; > + else > + { > + dst += n; > + src += n; > + while (n--) > + *--dst = *--src; > + } > +} > + The memops-asm.c testcase fails for nvptx because of a mismatch between function definition and function declaration for my_memmove in the generated nvptx code. man memmove show us that memmove returns a 'void *', not 'void': ... void *memmove(void *dest, const void *src, size_t n); ... and that it returns its first argument (well, the formulation could be improved): ... RETURN VALUE The memmove() function returns a pointer to dest. ... Fixed in attached patch. Committed. Thanks, - Tom Fix my_memmove in gcc.c-torture/execute/builtins/memops-asm-lib.c 2017-08-06 Tom de Vries * gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memmove): Fix return type. Add missing return. --- gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c b/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c index 25d4a40..3baf7a6 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c @@ -38,7 +38,7 @@ my_bcopy (const void *s, void *d, size_t n) } __attribute__ ((used)) -void +void * my_memmove (void *d, const void *s, size_t n) { char *dst = (char *) d; @@ -53,6 +53,8 @@ my_memmove (void *d, const void *s, size_t n) while (n--) *--dst = *--src; } + + return d; } /* LTO code is at the present to able to track that asm alias my_bcopy on builtin