diff options
author | Janus Weil <janus@gcc.gnu.org> | 2010-08-01 21:21:49 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2010-08-01 21:21:49 +0200 |
commit | f3f98a1e513a34b3de6a46ef732d02c2a14a6a3e (patch) | |
tree | d126ebbe2b9edcbf2625ee091a4729a1fbf99798 /gcc/fortran/class.c | |
parent | 47dad3ff97135ef8a26e0ecbc2170fba6c4e89be (diff) | |
download | gcc-f3f98a1e513a34b3de6a46ef732d02c2a14a6a3e.zip gcc-f3f98a1e513a34b3de6a46ef732d02c2a14a6a3e.tar.gz gcc-f3f98a1e513a34b3de6a46ef732d02c2a14a6a3e.tar.bz2 |
re PR fortran/44912 ([OOP] Segmentation fault on TBP)
2010-08-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/44912
* class.c (gfc_build_class_symbol): Make '$vptr' component private.
(gfc_find_derived_vtab): Make vtabs and vtypes public.
* module.c (read_module): When reading module files, always import
vtab and vtype symbols.
2010-08-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/44912
* gfortran.dg/typebound_call_17.f03: New.
From-SVN: r162804
Diffstat (limited to 'gcc/fortran/class.c')
-rw-r--r-- | gcc/fortran/class.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index b3a558b..9393b56 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -178,6 +178,7 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr, gcc_assert (vtab); c->ts.u.derived = vtab->ts.u.derived; } + c->attr.access = ACCESS_PRIVATE; c->attr.pointer = 1; } @@ -343,6 +344,7 @@ gfc_find_derived_vtab (gfc_symbol *derived) vtab->attr.target = 1; vtab->attr.save = SAVE_EXPLICIT; vtab->attr.vtab = 1; + vtab->attr.access = ACCESS_PUBLIC; vtab->refs++; gfc_set_sym_referenced (vtab); sprintf (name, "vtype$%s", derived->name); @@ -357,6 +359,7 @@ gfc_find_derived_vtab (gfc_symbol *derived) if (gfc_add_flavor (&vtype->attr, FL_DERIVED, NULL, &gfc_current_locus) == FAILURE) goto cleanup; + vtype->attr.access = ACCESS_PUBLIC; vtype->refs++; gfc_set_sym_referenced (vtype); |