diff options
author | Nathan Sidwell <nathan@acm.org> | 2017-10-31 12:50:19 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-10-31 12:50:19 +0000 |
commit | 137073d34a47fe14f97e35f69d3941b2ef0bb5c1 (patch) | |
tree | f744b2bf587a0a0316bd56618e284cc04aa509f4 /gcc/cp/dump.c | |
parent | 8a3f457f148b7114dfa37927b73410eecc986a33 (diff) | |
download | gcc-137073d34a47fe14f97e35f69d3941b2ef0bb5c1.zip gcc-137073d34a47fe14f97e35f69d3941b2ef0bb5c1.tar.gz gcc-137073d34a47fe14f97e35f69d3941b2ef0bb5c1.tar.bz2 |
[C++ PATCH] overloaded operator fns [1/N]
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02315.html
* cp-tree.h (assign_op_identifier, call_op_identifier): Define.
(LAMBDA_FUNCTION_P): Use DECL_OVERLOADED_OPERATOR_IS.
(DECL_OVERLOADED_OPERATOR_P): Just retuurn true/false.
(DECL_OVERLOADED_OPERATOR_CODE, DECL_OVERLOADED_OPERATOR_IS): Define.
* call.c (add_function_candidate): Use
DECL_OVERLOADED_OPERATOR_IS.
(build_op_call_1): Use call_op_identifier &
DECL_OVERLOADED_OPERATOR_IS.
(build_over_call): Likewise.
(has_trivial_copy_assign_p): Use assign_op_identifier.
(build_special_member_call): Likewise.
* class.c (dfs_declare_virt_assop_and_dtor): Likewise.
(vbase_has_user_provided_move_assign,
classtype_has_move_assign_or_move_ctor_p): Likewise.
* decl.c (duplicate_decls): Use DECL_OVERLOADED_OPERATOR_CODE.
(grok_special_member_properties): Use assign_op_identifier.
(start_preparsed_function): Use DECL_OVERLOADED_OPERATOR_IS.
* decl2.c (mark_used): Use DECL_CONV_FN_P.
* dump.c (dump_access): Delete prototype.
(dump_op): Delete.
(cp_dump_tree): Don't call it.
* lambda.c (lambda_function): Use call_op_identifier.
(maybe_add_lambda_conv_op): Not an overloaded operator. Remove
unneeded braces.
* mangle.c (write_unqualified_name): Use DECL_OVERLOADED_OPERTOR_CODE.
* method.c (do_build_copy_assign): Use assign_op_identifier.
(synthesize_method): Use DECL_OVERLOADED_OPERATOR_IS.
(get_copy_assign): Use assign_op_identifier.
(synthesized_method_walk): Likewise.
(defaultable_fn_check): Use DECL_OVERLOADED_OPERATOR_IS.
* parser.c (cp_parser_lambda_declarator_opt): Use
call_op_identifier.
* semanitics.c (classtype_has_nothrow_assign_or_copy_p): Use
assign_op_identifier.
* tree.c (special_function_p): Use DECL_OVERLOADED_OPERATOR_IS.
* typeck.c (check_return_expr): Use DECL_OVERLOADED_OPERATOR_CODE.
(check_return_expr): Use assign_op_identifier.
From-SVN: r254263
Diffstat (limited to 'gcc/cp/dump.c')
-rw-r--r-- | gcc/cp/dump.c | 165 |
1 files changed, 1 insertions, 164 deletions
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c index 6fafa5b..2e4740f 100644 --- a/gcc/cp/dump.c +++ b/gcc/cp/dump.c @@ -24,10 +24,6 @@ along with GCC; see the file COPYING3. If not see #include "cp-tree.h" #include "tree-dump.h" -static void dump_access (dump_info_p, tree); - -static void dump_op (dump_info_p, tree); - /* Dump a representation of the accessibility information associated with T. */ @@ -42,163 +38,6 @@ dump_access (dump_info_p di, tree t) dump_string_field (di, "accs", "pub"); } -/* Dump a representation of the specific operator for an overloaded - operator associated with node t. */ - -static void -dump_op (dump_info_p di, tree t) -{ - switch (DECL_OVERLOADED_OPERATOR_P (t)) { - case NEW_EXPR: - dump_string (di, "new"); - break; - case VEC_NEW_EXPR: - dump_string (di, "vecnew"); - break; - case DELETE_EXPR: - dump_string (di, "delete"); - break; - case VEC_DELETE_EXPR: - dump_string (di, "vecdelete"); - break; - case UNARY_PLUS_EXPR: - dump_string (di, "pos"); - break; - case NEGATE_EXPR: - dump_string (di, "neg"); - break; - case ADDR_EXPR: - dump_string (di, "addr"); - break; - case INDIRECT_REF: - dump_string(di, "deref"); - break; - case BIT_NOT_EXPR: - dump_string(di, "not"); - break; - case TRUTH_NOT_EXPR: - dump_string(di, "lnot"); - break; - case PREINCREMENT_EXPR: - dump_string(di, "preinc"); - break; - case PREDECREMENT_EXPR: - dump_string(di, "predec"); - break; - case PLUS_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "plusassign"); - else - dump_string(di, "plus"); - break; - case MINUS_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "minusassign"); - else - dump_string(di, "minus"); - break; - case MULT_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "multassign"); - else - dump_string (di, "mult"); - break; - case TRUNC_DIV_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "divassign"); - else - dump_string (di, "div"); - break; - case TRUNC_MOD_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "modassign"); - else - dump_string (di, "mod"); - break; - case BIT_AND_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "andassign"); - else - dump_string (di, "and"); - break; - case BIT_IOR_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "orassign"); - else - dump_string (di, "or"); - break; - case BIT_XOR_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "xorassign"); - else - dump_string (di, "xor"); - break; - case LSHIFT_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "lshiftassign"); - else - dump_string (di, "lshift"); - break; - case RSHIFT_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "rshiftassign"); - else - dump_string (di, "rshift"); - break; - case EQ_EXPR: - dump_string (di, "eq"); - break; - case NE_EXPR: - dump_string (di, "ne"); - break; - case LT_EXPR: - dump_string (di, "lt"); - break; - case GT_EXPR: - dump_string (di, "gt"); - break; - case LE_EXPR: - dump_string (di, "le"); - break; - case GE_EXPR: - dump_string (di, "ge"); - break; - case TRUTH_ANDIF_EXPR: - dump_string (di, "land"); - break; - case TRUTH_ORIF_EXPR: - dump_string (di, "lor"); - break; - case COMPOUND_EXPR: - dump_string (di, "compound"); - break; - case MEMBER_REF: - dump_string (di, "memref"); - break; - case COMPONENT_REF: - dump_string (di, "ref"); - break; - case ARRAY_REF: - dump_string (di, "subs"); - break; - case POSTINCREMENT_EXPR: - dump_string (di, "postinc"); - break; - case POSTDECREMENT_EXPR: - dump_string (di, "postdec"); - break; - case CALL_EXPR: - dump_string (di, "call"); - break; - case NOP_EXPR: - if (DECL_ASSIGNMENT_OPERATOR_P (t)) - dump_string (di, "assign"); - break; - default: - break; - } -} - /* Dump information common to statements from STMT. */ static void @@ -303,10 +142,8 @@ cp_dump_tree (void* dump_info, tree t) case FUNCTION_DECL: if (!DECL_THUNK_P (t)) { - if (DECL_OVERLOADED_OPERATOR_P (t)) { + if (DECL_OVERLOADED_OPERATOR_P (t)) dump_string_field (di, "note", "operator"); - dump_op (di, t); - } if (DECL_FUNCTION_MEMBER_P (t)) { dump_string_field (di, "note", "member"); |