From 4f9b1735ab5eaf93d07d65c81d83cd123a8f3478 Mon Sep 17 00:00:00 2001 From: Thomas Koenig Date: Sat, 19 Oct 2024 10:26:17 +0200 Subject: [PATCH] Fix an ICE with UNSIGNED in match_sym_complex_part. gcc/fortran/ChangeLog: PR fortran/117225 * primary.cc (match_sym_complex_part): An UNSIGNED in a complex part is an error. gcc/testsuite/ChangeLog: PR fortran/117225 * gfortran.dg/unsigned_38.f90: New test. --- gcc/fortran/primary.cc | 3 +++ gcc/testsuite/gfortran.dg/unsigned_38.f90 | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/unsigned_38.f90 diff --git a/gcc/fortran/primary.cc b/gcc/fortran/primary.cc index c11359a559b..e114bf1375f 100644 --- a/gcc/fortran/primary.cc +++ b/gcc/fortran/primary.cc @@ -1471,6 +1471,9 @@ match_sym_complex_part (gfc_expr **result) goto error; break; + case BT_UNSIGNED: + goto error; + default: gfc_internal_error ("gfc_match_sym_complex_part(): Bad type"); } diff --git a/gcc/testsuite/gfortran.dg/unsigned_38.f90 b/gcc/testsuite/gfortran.dg/unsigned_38.f90 new file mode 100644 index 00000000000..0d169ac92d3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unsigned_38.f90 @@ -0,0 +1,6 @@ +! { dg-do compile } +! { dg-options "-funsigned" } +program main + unsigned, parameter :: u = 7u + print *,mod(-(u+1u),u) +end program main -- 2.47.2