Commit df0b360e by Tobias Burnus Committed by Tobias Burnus

re PR fortran/55197 (Use statement for omp_lib causes ICE)

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.

From-SVN: r194537
parent f6c28ef1
2012-12-16 Tobias Burnus <burnus@net-b.de> 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>
* trans-intrinsic.c (conv_intrinsic_move_alloc): Set dynamic * trans-intrinsic.c (conv_intrinsic_move_alloc): Set dynamic
type of the FROM variable to the declared type. type of the FROM variable to the declared type.
......
...@@ -6157,6 +6157,8 @@ gfc_use_module (gfc_use_list *module) ...@@ -6157,6 +6157,8 @@ gfc_use_module (gfc_use_list *module)
"intrinsic module at %C") != FAILURE) "intrinsic module at %C") != FAILURE)
{ {
use_iso_fortran_env_module (); use_iso_fortran_env_module ();
free_rename (module->rename);
module->rename = NULL;
gfc_current_locus = old_locus; gfc_current_locus = old_locus;
module->intrinsic = true; module->intrinsic = true;
return; return;
...@@ -6167,6 +6169,8 @@ gfc_use_module (gfc_use_list *module) ...@@ -6167,6 +6169,8 @@ gfc_use_module (gfc_use_list *module)
"ISO_C_BINDING module at %C") != FAILURE) "ISO_C_BINDING module at %C") != FAILURE)
{ {
import_iso_c_binding_module(); import_iso_c_binding_module();
free_rename (module->rename);
module->rename = NULL;
gfc_current_locus = old_locus; gfc_current_locus = old_locus;
module->intrinsic = true; module->intrinsic = true;
return; return;
...@@ -6359,8 +6363,6 @@ gfc_use_modules (void) ...@@ -6359,8 +6363,6 @@ gfc_use_modules (void)
next = module_list->next; next = module_list->next;
rename_list_remove_duplicate (module_list->rename); rename_list_remove_duplicate (module_list->rename);
gfc_use_module (module_list); gfc_use_module (module_list);
if (module_list->intrinsic)
free_rename (module_list->rename);
free (module_list); free (module_list);
} }
gfc_rename_list = NULL; gfc_rename_list = NULL;
......
2012-12-16 Tobias Burnus <burnus@net-b.de> 2012-12-16 Tobias Burnus <burnus@net-b.de>
PR fortran/55197
* gfortran.dg/gomp/use_intrinsic_1.f90: New.
2012-12-16 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/move_alloc_14.f90: New. * gfortran.dg/move_alloc_14.f90: New.
2012-12-16 Tobias Burnus <burnus@net-b.de> 2012-12-16 Tobias Burnus <burnus@net-b.de>
......
! { dg-do compile }
!
! PR fortran/55197
!
! Contributed by Erik Toussaint
!
use, intrinsic :: omp_lib, only: omp_get_num_threads
use, intrinsic :: omp_lib_kinds , foo => omp_lock_kind
print *, foo
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment