diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-16 15:12:10 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-16 15:12:10 +0000 |
commit | 4430f688ae61145a51c2a3cbbe902afdec135176 (patch) | |
tree | 9cdcb4cf2bc217b21ecb591201bd58f69d5cae27 /gcc/cp/typeck.c | |
parent | 1e4343cd9927c965b5c1801a424e9708b09224f8 (diff) | |
download | gcc-4430f688ae61145a51c2a3cbbe902afdec135176.tar.gz |
2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
* call.c (build_op_delete_call, build_over_call): Check mark_used
return value.
* class.c (resolve_address_of_overloaded_function): Likewise.
* decl.c (cxx_maybe_build_cleanup): Likewise.
* pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
* rtti.c (build_dynamic_cast_1): Likewise.
* semantics.c (process_outer_var_ref): Likewise.
* typeck.c (build_class_member_access_expr,
cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222150 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/typeck.c')
-rw-r--r-- | gcc/cp/typeck.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index e9d4cae5705..250b5d68767 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -2298,7 +2298,8 @@ build_class_member_access_expr (tree object, tree member, if (DECL_P (member)) { member_scope = DECL_CLASS_CONTEXT (member); - mark_used (member); + if (!mark_used (member, complain) && !(complain & tf_error)) + return error_mark_node; if (TREE_DEPRECATED (member)) warn_deprecated_use (member, NULL_TREE); } @@ -3477,7 +3478,8 @@ cp_build_function_call_vec (tree function, vec<tree, va_gc> **params, if (TREE_CODE (function) == FUNCTION_DECL) { - mark_used (function); + if (!mark_used (function, complain) && !(complain & tf_error)) + return error_mark_node; fndecl = function; /* Convert anything with function type to a pointer-to-function. */ @@ -5376,7 +5378,8 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain) and the created OFFSET_REF. */ tree base = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (arg, 0))); tree fn = get_first_fn (TREE_OPERAND (arg, 1)); - mark_used (fn); + if (!mark_used (fn, complain) && !(complain & tf_error)) + return error_mark_node; if (! flag_ms_extensions) { @@ -5563,7 +5566,8 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain) function. */ gcc_assert (TREE_CODE (fn) == FUNCTION_DECL && DECL_STATIC_FUNCTION_P (fn)); - mark_used (fn); + if (!mark_used (fn, complain) && !(complain & tf_error)) + return error_mark_node; val = build_address (fn); if (TREE_SIDE_EFFECTS (TREE_OPERAND (arg, 0))) /* Do not lose object's side effects. */ |