From f98732327cfaa9a50d292553f36417b46dc835b8 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 20 May 2014 13:37:57 -0400 Subject: [PATCH] typeck.c (get_member_function_from_ptrfunc): Don't try to look up a virtual function in a dummy object. * typeck.c (get_member_function_from_ptrfunc): Don't try to look up a virtual function in a dummy object. From-SVN: r210651 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/typeck.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b6d945ff53d..dd183cc56f4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2014-05-20 Jason Merrill + + * typeck.c (get_member_function_from_ptrfunc): Don't try to look + up a virtual function in a dummy object. + 2014-05-20 Paolo Carlini PR c++/60373 diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 7420da42ede..b671c92d730 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -3253,6 +3253,12 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function, && !TYPE_POLYMORPHIC_P (basetype) && resolves_to_fixed_type_p (instance_ptr, 0)); + /* If we don't really have an object (i.e. in an ill-formed + conversion from PMF to pointer), we can't resolve virtual + functions anyway. */ + if (!nonvirtual && is_dummy_object (instance_ptr)) + nonvirtual = true; + if (TREE_SIDE_EFFECTS (instance_ptr)) instance_ptr = instance_save_expr = save_expr (instance_ptr); -- 2.30.2