From 1be04112a9ff60192580f59d7109f085540acb41 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 10 Jun 1998 10:50:44 +0000 Subject: [PATCH] * call.c (build_method_call): Fix thinko. From-SVN: r20413 --- gcc/cp/ChangeLog | 3 +-- gcc/cp/call.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d2645529501..33780b8df08 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,7 +1,6 @@ 1998-06-10 Jason Merrill - * call.c (build_scoped_method_call): Fix thinko. - (build_method_call): Likewise. + * call.c (build_method_call): Fix thinko. 1998-06-10 Dave Brolley diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 3a82b309f16..173bdde4d9f 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -397,7 +397,7 @@ build_scoped_method_call (exp, basetype, name, parms) /* OK */; else if (TREE_CODE (tmp) == IDENTIFIER_NODE) { - if (IS_AGGR_TYPE (basetype) && name == constructor_name (basetype)) + if (IS_AGGR_TYPE (basetype) && tmp == constructor_name (basetype)) tmp = basetype; else tmp = get_type_value (tmp); @@ -648,21 +648,21 @@ build_method_call (instance, name, parms, basetype_path, flags) { tree tmp; - flags |= LOOKUP_DESTRUCTOR; - name = TREE_OPERAND (name, 0); + tmp = name = TREE_OPERAND (name, 0); + if (parms) error ("destructors take no parameters"); basetype = TREE_TYPE (instance); if (TREE_CODE (basetype) == REFERENCE_TYPE) basetype = TREE_TYPE (basetype); - if (TREE_CODE (name) == TYPE_DECL) - tmp = TREE_TYPE (name); - else if (TREE_CODE_CLASS (TREE_CODE (name)) == 't') - tmp = name; - else if (TREE_CODE (name) == IDENTIFIER_NODE) + if (TREE_CODE (tmp) == TYPE_DECL) + tmp = TREE_TYPE (tmp); + else if (TREE_CODE_CLASS (TREE_CODE (tmp)) == 't') + /* OK */; + else if (TREE_CODE (tmp) == IDENTIFIER_NODE) { - if (IS_AGGR_TYPE (basetype) && name == constructor_name (basetype)) + if (IS_AGGR_TYPE (basetype) && tmp == constructor_name (basetype)) tmp = basetype; else tmp = get_type_value (tmp); -- 2.30.2