[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-17 Thread rsandifo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

rsandifo at gcc dot gnu.org  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #20 from rsandifo at gcc dot gnu.org  
---
Backported to GCC 12 without the assert.

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-17 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

--- Comment #19 from CVS Commits  ---
The releases/gcc-12 branch has been updated by Richard Sandiford
:

https://gcc.gnu.org/g:66700dde0dfb2c2b07d771f90df1fe16d1d61ce9

commit r12-9416-g66700dde0dfb2c2b07d771f90df1fe16d1d61ce9
Author: Richard Sandiford 
Date:   Mon Apr 17 14:41:00 2023 +0100

aarch64: Don't trust TYPE_ALIGN for pointers [PR108910]

The aarch64 PCS rules ignore user alignment for scalars and
vectors and use the "natural" alignment of the type.  GCC tried
to calculate that natural alignment using:

  TYPE_ALIGN (TYPE_MAIN_VARIANT (type))

But as discussed in the PR, it's possible that the main variant
of a pointer type is an overaligned type (although that's usually
accidental).

This isn't known to be a problem for other types, so this patch
changes the bare minimum.  It might be that we need to ignore
TYPE_ALIGN in other cases too.

gcc/
PR target/108910
* config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.

gcc/testsuite/
PR target/108910
* gcc.dg/torture/pr108910.c: New test.

(cherry picked from commit 66946624b96b762985de56444d726a0ebd4e0df5)

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-14 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

--- Comment #18 from Jason Merrill  ---
(In reply to Jakub Jelinek from comment #13)
> Jason, any thoughts on why we for build_type_attribute_qual_variant call
> build_distinct_type_copy rather than build_variant_type_copy

That does seem weird.  It should probably depend on whether any of the
attributes have affects_type_identity.  And so should setting of
TYPE_CANONICAL.  Unless we never use it with such attributes, in which case we
should checking_assert that, and always use build_variant_type_copy.

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-14 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910
Bug 108910 depends on bug 109510, which changed state.

Bug 109510 Summary: [13 Regression] bootstrap with Ada broken on aarch64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109510

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-14 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

--- Comment #17 from Richard Biener  ---
(In reply to Andreas Schwab from comment #16)
> This breaks Ada:
> 
> /opt/gcc/gcc-20230414/Build/./gcc/xgcc -B/opt/gcc/gcc-20230414/Build/./gcc/
> -B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem
> /usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include
> -c -g -O2  -fPIC -fno-lto  -W -Wall -gnatpg -nostdinc   s-bitfie.ads -o
> s-bitfie.o
> +===GNAT BUG DETECTED==+
> | 13.0.1 20230414 (experimental) [master 48d0244b605] (aarch64-suse-linux)
> GCC error:|
> | in aarch64_function_arg_alignment, at config/aarch64/aarch64.cc:7498 |
> | Error detected at s-bituti.adb:195:7 [s-bitfie.ads:55:4] |
> | Compiling s-bitfie.ads   |

tracking this in PR109510 now.

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-14 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

--- Comment #16 from Andreas Schwab  ---
This breaks Ada:

/opt/gcc/gcc-20230414/Build/./gcc/xgcc -B/opt/gcc/gcc-20230414/Build/./gcc/
-B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem
/usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include   
-c -g -O2  -fPIC -fno-lto  -W -Wall -gnatpg -nostdinc   s-bitfie.ads -o
s-bitfie.o
+===GNAT BUG DETECTED==+
| 13.0.1 20230414 (experimental) [master 48d0244b605] (aarch64-suse-linux) GCC
error:|
| in aarch64_function_arg_alignment, at config/aarch64/aarch64.cc:7498 |
| Error detected at s-bituti.adb:195:7 [s-bitfie.ads:55:4] |
| Compiling s-bitfie.ads   |

[Bug target/108910] [12 Regression] Further ICE in aarch64_layout_arg

2023-04-13 Thread rsandifo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108910

rsandifo at gcc dot gnu.org  changed:

   What|Removed |Added

Summary|[12/13 Regression] Further  |[12 Regression] Further ICE
   |ICE in aarch64_layout_arg   |in aarch64_layout_arg
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rsandifo at gcc dot 
gnu.org

--- Comment #15 from rsandifo at gcc dot gnu.org  
---
Fixed on trunk so far.