From patchwork Fri Mar 8 11:15:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 86967 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A8BA6385DC0C for ; Fri, 8 Mar 2024 11:15:36 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) by sourceware.org (Postfix) with ESMTPS id 63EE63858D38 for ; Fri, 8 Mar 2024 11:15:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 63EE63858D38 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 63EE63858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::230 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709896510; cv=none; b=M9fsSQQ0kH9e+VAbrfj/P7SNo/kyWyh4xwfHBl7DeaUWmxtI1NJxb9DV1595pAesKeCFZc4sImG5si+LpdCekCNXfX1dSxrwGIapLS1hqeo/SKBCQ2OyePd5k+rggIEij7SF6C+ihSAPBKV3jr0+4psXMfHuL4XfMwUZAqxkDfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709896510; c=relaxed/simple; bh=badJ+hkppQhELGqFaquyc5+iyWQAepFIgA9Rm0U4Iko=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=CwLO8R9jjnCVoF2ZwtwWVWTi8CXAEUAjUUUf0Gz4SQEXoc/C1FEaLpEfidmmgIUXud9PKp0XI11Ct0ZJTIjfAUZ2Wuz6p/SyORohUk8QmMmegjMEadbMvvdu+pVnKpaIZWBCc2hZRI2V5rXSvwVNP5F0UM9dGa460SDSwzuL3kI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2d29aad15a5so6755081fa.3 for ; Fri, 08 Mar 2024 03:15:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1709896505; x=1710501305; darn=gcc.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:to:from:from:to:cc:subject:date:message-id:reply-to; bh=BnomoJHZQv0aMBonHT4LIQSBC5L5RYZ+Fa9kUxIRLWU=; b=D2XmRyaSHmHrPMa5JpjKnBgU0w1op69s+2eUljTPwjUG1XH0QYxdV0WkuRhJQNeK/6 YWNlgu1xPoBV5p3d76k2Tbqy9s5WEq69Nc8YSaVnoe04B2EZIjeLazdSDAfhFSiezB37 61ohka/lgcMeS/GzNEIT9pMNaMFOvE0ejO5tPXhMBFJ89r7U02o3WVysdcjyu8gGu71a dJ/5sSjqRy3utsYLO0YXlFY93NR1N8CA8ESTnNMa8wZt4mpAU3fk53/6XBHd+PnCvoA9 YW2IFixes7UsV0lkF0QQ97XKU0l5BYU3bPesYoaGkwKULGk5kAuRs29FdTCUTbLBUyeK i7kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709896505; x=1710501305; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BnomoJHZQv0aMBonHT4LIQSBC5L5RYZ+Fa9kUxIRLWU=; b=pAnVr6BjloeOeZtwKZ/vAa01cFYsh6pFKERIAV7qnJl2mCq0Ul3gDbmc5GqYtVS5i9 9H6qfxv5jgUP7xKbv8v9wB3EseTWG7QAZQXTmaAA8Lw3TDsMP/Pi/G2RZJGwrpBzGdO+ 4t1iZUJ5Et5k+UXrohhVJmoDofyUoM6Mgn8ALCr9Ia0hswc33EHzVMd2gdd07Q2+VIFK 4njDuHyiL/okByL1IyKuuc1bSXNdQ3hyP78M4kYJJAuzCbizXOnNZm2DRG0XqmcKFSrZ wI4jnx1Unqq04SFfMte3iipnub8TJWPQ3xhL3pN++61d6BvUdWkv8/oioAM6OsTPrjHK gAlw== X-Forwarded-Encrypted: i=1; AJvYcCWp0+dSfhCloTYo/L7sP8vk4zNWPY4zZFVFUMtjCWDrgzP5Nf/e6zDRbaHKh14AhwwkXckpsKpMlZ7SknfVLTmN9QYGg+RknA== X-Gm-Message-State: AOJu0YxJj4U3dBmmQ+obhCxaLQqFQCNVG2dTEC/BChyEX0/ahYSsec5+ n0kggwAaG8ij9HoJqp2WMHxJytqb1GAjAMtIzx7UmvROZBNu9NbJR3EJ8u24PWg= X-Google-Smtp-Source: AGHT+IGx/8EySnRTT82pt+pMq/9jCbFouWtqGfaA+Jy+6iSCLgIUw40rZuI6mfx95/ddCJaixvsYVQ== X-Received: by 2002:a2e:a36e:0:b0:2d2:dac3:90f with SMTP id i14-20020a2ea36e000000b002d2dac3090fmr3153514ljn.52.1709896505007; Fri, 08 Mar 2024 03:15:05 -0800 (PST) Received: from euler.schwinge.homeip.net (p200300c8b70336000b0134869109dcb1.dip0.t-ipconnect.de. [2003:c8:b703:3600:b01:3486:9109:dcb1]) by smtp.gmail.com with ESMTPSA id c6-20020a056402100600b0056536eed484sm9062982edu.35.2024.03.08.03.15.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 03:15:04 -0800 (PST) From: Thomas Schwinge To: Tobias Burnus , gcc-patches@gcc.gnu.org Subject: Fix 'char' initialization, copy, check in 'libgomp.oacc-fortran/acc-memcpy.f90' (was: [patch] OpenACC: Add Fortran routines acc_{alloc,free,hostptr,deviceptr,memcpy_{to,from}_device*}) In-Reply-To: <3ef24b00-7ce1-43df-a62e-2817b2700fb9@baylibre.com> References: <3ef24b00-7ce1-43df-a62e-2817b2700fb9@baylibre.com> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/29.1 (x86_64-pc-linux-gnu) Date: Fri, 08 Mar 2024 12:15:02 +0100 Message-ID: <87y1at5615.fsf@euler.schwinge.ddns.net> MIME-Version: 1.0 X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Hi Tobias! On 2024-02-19T22:36:51+0100, Tobias Burnus wrote: > --- /dev/null > +++ b/libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 OK to push "Fix 'char' initialization, copy, check in 'libgomp.oacc-fortran/acc-memcpy.f90'", see attached? Grüße Thomas > @@ -0,0 +1,47 @@ > +! { dg-do run } > +! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } > + > +! based on libgomp.oacc-c-c++-common/lib-60.c > + > +program main > + use openacc > + use iso_fortran_env > + use iso_c_binding > + implicit none (type, external) > + integer(int8), allocatable :: char(:) > + type(c_ptr) :: dptr > + integer(c_intptr_t) :: i > + integer(int8) :: j > + > + allocate(char(-128:127)) > + do i = -128, 127 > + char(j) = int (j, int8) > + end do > + > + dptr = acc_malloc (256_c_size_t) > + call acc_memcpy_to_device (dptr, char, 255_c_size_t) > + > + do i = 0, 255 > + if (acc_is_present (transfer (transfer(char, i) + i, dptr), 1)) & > + stop 1 > + end do > + > + char = 0_int8 > + > + call acc_memcpy_from_device (char, dptr, 256_c_size_t) > + > + do i = -128, 127 > + char(i) = int (j, int8) > + if (char(i) /= j) & > + stop 2 > + end do > + > + do i = 0, 255 > + if (acc_is_present (transfer (transfer(char, i) + i, dptr), 1)) & > + stop 3 > + end do > + > + call acc_free (dptr) > + > + deallocate (char) > +end From 7ea60a544353fa9ff0760e11db53332195eebad4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 6 Mar 2024 23:18:08 +0100 Subject: [PATCH] Fix 'char' initialization, copy, check in 'libgomp.oacc-fortran/acc-memcpy.f90' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Our dear friend '-Wuninitialized' reported: [...]/libgomp.oacc-fortran/acc-memcpy.f90:18:27: 18 | char(j) = int (j, int8) | ^ Warning: ‘j’ may be used uninitialized [-Wmaybe-uninitialized] [...]/libgomp.oacc-fortran/acc-memcpy.f90:14:20: 14 | integer(int8) :: j | ^ note: ‘j’ was declared here ..., but actually there were other issues. libgomp/ * testsuite/libgomp.oacc-fortran/acc-memcpy.f90: Fix 'char' initialization, copy, check. --- libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 b/libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 index 670dc50ff07..844d08a4661 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy.f90 @@ -11,15 +11,14 @@ program main integer(int8), allocatable :: char(:) type(c_ptr) :: dptr integer(c_intptr_t) :: i - integer(int8) :: j allocate(char(-128:127)) do i = -128, 127 - char(j) = int (j, int8) + char(i) = int (i, int8) end do dptr = acc_malloc (256_c_size_t) - call acc_memcpy_to_device (dptr, char, 255_c_size_t) + call acc_memcpy_to_device (dptr, char, 256_c_size_t) do i = 0, 255 if (acc_is_present (transfer (transfer(char, i) + i, dptr), 1)) & @@ -31,8 +30,7 @@ program main call acc_memcpy_from_device (char, dptr, 256_c_size_t) do i = -128, 127 - char(i) = int (j, int8) - if (char(i) /= j) & + if (char(i) /= i) & stop 2 end do -- 2.34.1