aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/intrinsic.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-03-31 11:52:01 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-03-31 11:52:01 +0200
commitcbde6c0f8a7e66e7ab07fd5514350237af0b27da (patch)
treeebc1007627c0a3cb951bfc2f5965ec9dba0181db /gcc/fortran/intrinsic.c
parenta38b34f18e6d518689d109a86dbf5084d11b4140 (diff)
downloadgcc-cbde6c0f8a7e66e7ab07fd5514350237af0b27da.zip
gcc-cbde6c0f8a7e66e7ab07fd5514350237af0b27da.tar.gz
gcc-cbde6c0f8a7e66e7ab07fd5514350237af0b27da.tar.bz2
2013-03-31 Tobias Burnus <burnus@net-b.de>
* class.c (finalization_scalarizer, * finalizer_insert_packed_call, generate_finalization_wrapper): Avoid segfault with absent SIZE= argment to TRANSFER and use correct result kind for SIZE. * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of nonmodules. * trans.c (gfc_build_final_call): Handle coarrays. From-SVN: r197281
Diffstat (limited to 'gcc/fortran/intrinsic.c')
-rw-r--r--gcc/fortran/intrinsic.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index 2a51d10..64df296 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -813,7 +813,9 @@ find_sym (gfc_intrinsic_sym *start, int n, const char *name)
gfc_isym_id
gfc_isym_id_by_intmod (intmod_id from_intmod, int intmod_sym_id)
{
- if (from_intmod == INTMOD_ISO_C_BINDING)
+ if (from_intmod == INTMOD_NONE)
+ return (gfc_isym_id) intmod_sym_id;
+ else if (from_intmod == INTMOD_ISO_C_BINDING)
return (gfc_isym_id) c_interop_kinds_table[intmod_sym_id].value;
else if (from_intmod == INTMOD_ISO_FORTRAN_ENV)
switch (intmod_sym_id)
@@ -829,9 +831,7 @@ gfc_isym_id_by_intmod (intmod_id from_intmod, int intmod_sym_id)
gcc_unreachable ();
}
else
- {
- gcc_unreachable ();
- }
+ gcc_unreachable ();
return (gfc_isym_id) 0;
}