diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-11-07 19:41:12 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-11-07 19:41:12 +0100 |
commit | fd83db3d51f6379186a012f817d1f1ed003500b0 (patch) | |
tree | 86c04780e7b4597295a42c9c07fe929a74a1c915 /gcc/fortran/class.c | |
parent | 0098895f4e9f8e68f2ab2bba22eafe7c60c632aa (diff) | |
download | gcc-fd83db3d51f6379186a012f817d1f1ed003500b0.zip gcc-fd83db3d51f6379186a012f817d1f1ed003500b0.tar.gz gcc-fd83db3d51f6379186a012f817d1f1ed003500b0.tar.bz2 |
re PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP)
2011-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/50919
* class.c (add_proc_comp): Don't add non-overridable procedures to the
vtable.
* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
Don't generate a dynamic _vptr call for non-overridable procedures.
2011-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/50919
* gfortran.dg/typebound_call_21.f03: New.
From-SVN: r181107
Diffstat (limited to 'gcc/fortran/class.c')
-rw-r--r-- | gcc/fortran/class.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index f64cc1b..574d22b 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -288,6 +288,10 @@ static void add_proc_comp (gfc_symbol *vtype, const char *name, gfc_typebound_proc *tb) { gfc_component *c; + + if (tb->non_overridable) + return; + c = gfc_find_component (vtype, name, true, true); if (c == NULL) |