Mercurial > hg > CbC > CbC_gcc
diff libcc1/libcp1plugin.cc @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/libcc1/libcp1plugin.cc Fri Oct 27 22:46:09 2017 +0900 +++ b/libcc1/libcp1plugin.cc Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* Library interface to C++ front end. - Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copyright (C) 2014-2018 Free Software Foundation, Inc. This file is part of GCC. As it interacts with GDB through libcc1, they all become a single program as regards the GNU GPL's requirements. @@ -1346,12 +1346,7 @@ } if (opcode != ERROR_MARK) - { - if (assop) - identifier = cp_assignment_operator_id (opcode); - else - identifier = cp_operator_id (opcode); - } + identifier = ovl_op_identifier (assop, opcode); } decl = build_lang_decl_loc (loc, code, identifier, sym_type); /* FIXME: current_lang_name is lang_name_c while compiling an @@ -1410,19 +1405,14 @@ DECL_DECLARED_INLINE_P (decl) = 1; DECL_INITIAL (decl) = error_mark_node; } - if (ctor || dtor) - { - if (ctor) - DECL_CXX_CONSTRUCTOR_P (decl) = 1; - if (dtor) - DECL_CXX_DESTRUCTOR_P (decl) = 1; - } - else - { - if ((sym_flags & GCC_CP_FLAG_SPECIAL_FUNCTION) - && opcode != ERROR_MARK) - SET_OVERLOADED_OPERATOR_CODE (decl, opcode); - } + + if (ctor) + DECL_CXX_CONSTRUCTOR_P (decl) = 1; + else if (dtor) + DECL_CXX_DESTRUCTOR_P (decl) = 1; + else if ((sym_flags & GCC_CP_FLAG_SPECIAL_FUNCTION) + && opcode != ERROR_MARK) + DECL_OVERLOADED_OPERATOR_CODE_RAW (decl) = ovl_op_mapping[opcode]; } else if (RECORD_OR_UNION_CODE_P (code)) { @@ -2649,12 +2639,7 @@ gcc_assert (convop || !conv_type); if (opcode != ERROR_MARK) - { - if (assop) - identifier = cp_assignment_operator_id (opcode); - else - identifier = cp_operator_id (opcode); - } + identifier = ovl_op_identifier (assop, opcode); gcc_assert (identifier); } @@ -3061,7 +3046,8 @@ break; default: - result = cxx_sizeof_or_alignof_type (type, opcode, true); + /* Use the C++11 alignof semantics. */ + result = cxx_sizeof_or_alignof_type (type, opcode, true, true); } if (template_dependent_p)