public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/55197] New: Use statement for omp_lib causes ICE
@ 2012-11-03 22:49 eh.toussaint at gmail dot com
  2012-11-03 23:28 ` [Bug fortran/55197] " burnus at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: eh.toussaint at gmail dot com @ 2012-11-03 22:49 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55197

             Bug #: 55197
           Summary: Use statement for omp_lib causes ICE
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: eh.toussaint@gmail.com


The following short program causes an ICE in (MinGW) gfortran 4.7.0.

use, intrinsic :: omp_lib, only: omp_get_num_threads
end

$ gfortran -c -fopenmp tmp.f90
tmp.f90:1:0: internal compiler error: in gfc_trans_use_stmts, at
fortran/trans-d
ecl.c:4133

Both the 'intrinsic' attribute and the 'only' clause are required to trip the
error.

$ gcc -v
Using built-in specs.
COLLECT_GCC=E:\mingw\bin\gcc.exe
COLLECT_LTO_WRAPPER=e:/mingw/bin/../libexec/gcc/mingw32/4.7.0/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.7.0/configure
--enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared
--enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug
--disable-build-poststage1-
with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.0 (GCC)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/55197] Use statement for omp_lib causes ICE
  2012-11-03 22:49 [Bug fortran/55197] New: Use statement for omp_lib causes ICE eh.toussaint at gmail dot com
@ 2012-11-03 23:28 ` burnus at gcc dot gnu.org
  2012-12-16 14:37 ` burnus at gcc dot gnu.org
  2012-12-16 14:38 ` burnus at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-11-03 23:28 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55197

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-11-03
                 CC|                            |burnus at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-11-03 23:28:00 UTC ---
Confirmed. The problem is that we do in module.c's gfc_use_modules:

      gfc_use_module (module_list);
      if (module_list->intrinsic)
        free_rename (module_list->rename);

But then in trans-decl.c's gfc_trans_use_stmts:

      for (rent = use_stmt->rename; rent; rent = rent->next)

While freeing the memory is probably fine for build-in intrinsic modules like
ISO_Fortran_env and ISO_C_Binding; however, doing so for intrinsic modules
which are loaded for a file is wrong. (Side note: We should free the rename
list in trans-decl.c to avoid mem leaks.)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/55197] Use statement for omp_lib causes ICE
  2012-11-03 22:49 [Bug fortran/55197] New: Use statement for omp_lib causes ICE eh.toussaint at gmail dot com
  2012-11-03 23:28 ` [Bug fortran/55197] " burnus at gcc dot gnu.org
@ 2012-12-16 14:37 ` burnus at gcc dot gnu.org
  2012-12-16 14:38 ` burnus at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-12-16 14:37 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55197

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-12-16 14:36:58 UTC ---
Author: burnus
Date: Sun Dec 16 14:36:54 2012
New Revision: 194537

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194537
Log:
2012-12-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55197
        * module.c (gfc_use_module): Free rename list only for
        internally generated intrinsic modules.

2012-12-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55197
        * gfortran.dg/gomp/use_intrinsic_1.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/module.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/55197] Use statement for omp_lib causes ICE
  2012-11-03 22:49 [Bug fortran/55197] New: Use statement for omp_lib causes ICE eh.toussaint at gmail dot com
  2012-11-03 23:28 ` [Bug fortran/55197] " burnus at gcc dot gnu.org
  2012-12-16 14:37 ` burnus at gcc dot gnu.org
@ 2012-12-16 14:38 ` burnus at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-12-16 14:38 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55197

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-12-16 14:38:34 UTC ---
FIXED for GCC 4.8 (trunk).

Thanks for the bugreport!


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-12-16 14:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-03 22:49 [Bug fortran/55197] New: Use statement for omp_lib causes ICE eh.toussaint at gmail dot com
2012-11-03 23:28 ` [Bug fortran/55197] " burnus at gcc dot gnu.org
2012-12-16 14:37 ` burnus at gcc dot gnu.org
2012-12-16 14:38 ` burnus at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).