[C++ PATCH] overloaded operator fns [6/N]
commita543234db0acd1b4e68442d3979518be25331791
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Nov 2017 14:03:27 +0000 (1 14:03 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Nov 2017 14:03:27 +0000 (1 14:03 +0000)
tree46fe2615cfcde921d2e8142f94bf117cca7fcf43
parent01e3bc6eba1db5273bcb911bff1fccd61b5d0ec3
[C++ PATCH] overloaded operator fns [6/N]

https://gcc.gnu.org/ml/gcc-patches/2017-11/msg00018.html
* cp-tree.h (IDENTIFIER_CP_INDEX): Define.
(enum ovl_op_flags): Add OVL_OP_FLAG_AMBIARY.
(enum ovl_op_code): New.
(struct ovl_op_info): Add ovl_op_code field.
(ovl_op_info): Size by OVL_OP_MAX.
(ovl_op_mapping, ovl_op_alternate): Declare.
(OVL_OP_INFO): Adjust for mapping array.
(IDENTIFIER_OVL_OP_INFO): New.
* decl.c (ambi_op_p, unary_op_p): Delete.
(grok_op_properties): Use IDENTIFIER_OVL_OP_INFO and
ovl_op_alternate.
* lex.c (ovl_op_info): Adjust and static initialize.
(ovl_op_mappings, ovl_op_alternate): Define.
(init_operators): Iterate over ovl_op_info array and init mappings
& alternate arrays.
* mangle.c (write_unqualified_id): Use IDENTIFIER_OVL_OP_INFO.
* operators.def (DEF_OPERATOR): Remove KIND parm.
(DEF_SIMPLE_OPERATOR): Delete.
(OPERATOR_TRANSITION): Expand if defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254310 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/lex.c
gcc/cp/mangle.c
gcc/cp/operators.def