From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 95C6A3858D33; Thu, 13 Apr 2023 17:11:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 95C6A3858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1681405915; bh=f5BEzY7v6M2MonsvNZ7XSfe7b2H4kcHuUi1VNcZj1bk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Uu3KCKmPkfPWx07G8UcMgiETOEH/fvohjzTqVor+K/XAtVQolgzpBdjBAEdW/mrKV yvFHQbdAW7+FI7+hKBeWdQip8EXBG5mKyLMp2vCPRinZ5ke8oIdiuTl+VvMkYAChT/ epkweFDr8OOBY5K47+aLwjxNadOel8SJslkUQt0c= From: "dave.anglin at bell dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/109478] FAIL: g++.dg/other/pr104989.C -std=gnu++14 (internal compiler error: Segmentation fault) Date: Thu, 13 Apr 2023 17:11:53 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-invalid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: dave.anglin at bell dot net X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- 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=3D109478 --- Comment #3 from dave.anglin at bell dot net --- On 2023-04-12 7:31 a.m., rguenth at gcc dot gnu.org wrote: > and the RTL for the argument is > > (parallel:BLK []) > > ick. pa_function_arg runs into > > 9786 arg_size =3D pa_function_arg_size (mode, type); > 9800 if (arg_size > 1) > (gdb) p arg_size > $7 =3D 0 > > so isn't able to decipher things down to a "valid" argument spec. Note > above for the argument type we have TYPE_SIZE =3D=3D 0 but a very > large TYPE_SIZE_UNIT. > > One "obvious" mistake is to use 'int arg_size' for the HOST_WIDE_INT > pa_function_arg_size return value. Adjusting also downstream variable > types helps to some extent but then we ICE in Yes, this is wrong.=C2=A0 However, pa_function_arg only handles the distrib= ution of arguments to registers. It's should return NULL_RTX for "large" arg_size values.=C2=A0 Don't know w= hy this didn't show up before. > > during RTL pass: dwarf2 > t.ii: In function 'void c(...)': > t.ii:4:23: internal compiler error: in dwarf2out_frame_debug_expr, at > dwarf2cfi.cc:1960 > 4 | void c(...) { c(a()); } > | ^ > 0x12bd9d2 dwarf2out_frame_debug_expr > /space/rguenther/src/gcc/gcc/dwarf2cfi.cc:1960 > 0x12bea15 dwarf2out_frame_debug > /space/rguenther/src/gcc/gcc/dwarf2cfi.cc:2367 > 0x12bf81b scan_insn_after > /space/rguenther/src/gcc/gcc/dwarf2cfi.cc:2726 > 0x12bfe3c scan_trace > > seeing > > (set (reg:DI 1 %r1) > (plus:DI (reg/f:DI 30 %r30) > (const_int 4611686018427379840 [0x3fffffffffffe080]))) Need to investigate where this stack adjustment comes from. Even if we force the const_int to memory, this will never work with real hardware.=C2=A0 The maximum physical address size is 44 bits.=