aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/class.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2011-11-07 19:41:12 +0100
committerJanus Weil <janus@gcc.gnu.org>2011-11-07 19:41:12 +0100
commitfd83db3d51f6379186a012f817d1f1ed003500b0 (patch)
tree86c04780e7b4597295a42c9c07fe929a74a1c915 /gcc/fortran/class.c
parent0098895f4e9f8e68f2ab2bba22eafe7c60c632aa (diff)
downloadgcc-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.c4
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)