Bug 100633 - ICE: gfc_trans_omp_workshare(): Bad statement code
Summary: ICE: gfc_trans_omp_workshare(): Bad statement code
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: 12.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-invalid-code, openmp
Depends on:
Blocks:
 
Reported: 2021-05-17 06:25 UTC by Arseny Solokha
Modified: 2021-05-18 07:31 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2021-05-17 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arseny Solokha 2021-05-17 06:25:05 UTC
gfortran-12.0.0-alpha20210516 snapshot (g:4a322345cab10879162a2ddf659fb0f873ba0182) ICEs when compiling the following testcase, extracted from test/Semantics/omp-workshare03.f90 from the flang 12.0.0 test suite, w/ -fopenmp:

module defined_assign
  interface assignment(=)
    module procedure work_assign
  end interface

  contains
    subroutine work_assign(a,b)
      integer, intent(out) :: a
      logical, intent(in) :: b(:)
    end subroutine work_assign
end module defined_assign

program omp_workshare
  use defined_assign

  integer :: a
  logical :: l(10)
  l = .TRUE.

  !$omp workshare
  a = l
  !$omp end workshare

end program omp_workshare

% gfortran-12.0.0 -fopenmp -c dd24tjoy.f90
f951: internal compiler error: gfc_trans_omp_workshare(): Bad statement code
0x82f5c9 gfc_report_diagnostic
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/error.c:782
0x82f5c9 gfc_internal_error(char const*, ...)
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/error.c:1402
0x9757ea gfc_trans_omp_workshare
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/trans-openmp.c:6128
0x8f1645 trans_code
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/trans.c:2209
0x921313 gfc_generate_function_code(gfc_namespace*)
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/trans-decl.c:6885
0x89a917 translate_all_program_units
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/parse.c:6370
0x89a917 gfc_parse_file()
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/parse.c:6639
0x8ee74f gfc_be_parse_file
	/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210516/work/gcc-12-20210516/gcc/fortran/f95-lang.c:212
Comment 1 Martin Liška 2021-05-17 08:10:47 UTC
Confirmed, it's old, I can see it also with GCC 4.9.0.
Comment 2 GCC Commits 2021-05-17 11:23:47 UTC
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:582776eb1b62c32f5234566a01ea92247b7d6bcc

commit r12-827-g582776eb1b62c32f5234566a01ea92247b7d6bcc
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Mon May 17 13:20:27 2021 +0200

    OpenMP/Fortran: Reject nonintrinsic assignments in OMP WORKSHARE [PR100633]
    
            PR fortran/100633
    
    gcc/fortran/ChangeLog:
    
            * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
            OMP WORKSHARE.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/gomp/workshare-59.f90: New test.
Comment 3 GCC Commits 2021-05-18 06:54:32 UTC
The releases/gcc-11 branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:efb6bda7f5136d59be254b10d2b81ba28be8ecfb

commit r11-8428-gefb6bda7f5136d59be254b10d2b81ba28be8ecfb
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Mon May 17 13:20:27 2021 +0200

    OpenMP/Fortran: Reject nonintrinsic assignments in OMP WORKSHARE [PR100633]
    
            PR fortran/100633
    
    gcc/fortran/ChangeLog:
    
            * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
            OMP WORKSHARE.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/gomp/workshare-59.f90: New test.
    
    (cherry picked from commit 582776eb1b62c32f5234566a01ea92247b7d6bcc)
Comment 4 Tobias Burnus 2021-05-18 07:31:35 UTC
FIXED on mainline (GCC 12) and on the GCC 11 branch.

Thanks for the report!