diff options
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r-- | gcc/cp/pt.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 8c920c36442..537d1073fa0 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -17470,7 +17470,14 @@ tsubst_copy_and_build (tree t, if (member == error_mark_node) RETURN (error_mark_node); - if (type_dependent_expression_p (object)) + if (TREE_CODE (member) == FIELD_DECL) + { + r = finish_non_static_data_member (member, object, NULL_TREE); + if (TREE_CODE (r) == COMPONENT_REF) + REF_PARENTHESIZED_P (r) = REF_PARENTHESIZED_P (t); + RETURN (r); + } + else if (type_dependent_expression_p (object)) /* We can't do much here. */; else if (!CLASS_TYPE_P (object_type)) { @@ -17535,13 +17542,6 @@ tsubst_copy_and_build (tree t, } RETURN (error_mark_node); } - else if (TREE_CODE (member) == FIELD_DECL) - { - r = finish_non_static_data_member (member, object, NULL_TREE); - if (TREE_CODE (r) == COMPONENT_REF) - REF_PARENTHESIZED_P (r) = REF_PARENTHESIZED_P (t); - RETURN (r); - } r = finish_class_member_access_expr (object, member, /*template_p=*/false, |