From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 642DF3858C52; Sat, 15 Jul 2023 10:35:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 642DF3858C52 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689417303; bh=MAW2NzXTclt2KNzVAikhWGKXS+JSg+1eTMA/gy72ql0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=jBvt+pbXo2z9LJDoxHc06Vrulj2fZi2Jc3qCN1ocqnx7jjRKKgtSKnHWzK720vjYC QNUBGIagqXIXfdv4CI8ITMVl1ov96yK4ESwH+yjy4UygHKgIzkXzm749FwcKKwBB8E 28bYIXPkib1Xr7HnD/EmidsUTpSGhqJjDaDwg2KY= From: "mikael at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug testsuite/110419] [14 regression] new test case gfortran.dg/value_9.f90 in r14-2050-gd130ae8499e0c6 fails Date: Sat, 15 Jul 2023 10:35:02 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: testsuite X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: testsuite-fail X-Bugzilla-Severity: normal X-Bugzilla-Who: mikael at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110419 --- Comment #15 from Mikael Morin --- rs6000_pass_by_reference returns true with -m32, and false with -m64. So the second argument is passed by reference with -m32, and by value with -m64. So the code in val looks right, it is the code in p calling val which isn't. val is declared as: void val (character(kind=3D1)[1:1] & restrict x, character(kind=3D1)[1:1] c, integer(kind=3D8) _x, integer(kind=3D8) _c) so the second argument has array type, whereas p calls val with: void p () { ... character(kind=3D1) char.5_3; : ... val (&"A"[1]{lb: 1 sz: 1}, char.5_3, 1, 1); [static-chain: &FRAME.6] so the second actual argument has non-array type.=