diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-10 00:03:23 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-10 00:03:23 +0000 |
commit | a57df396bd4b901a12316397d21fb928f27eee84 (patch) | |
tree | dfa4dbe4fedcfc227486b3bcbf1eba6c29b00bd6 /gcc/cp/cp-tree.h | |
parent | 118da0ffd17cb59f7c099d84763631f60917444d (diff) | |
download | ppe42-gcc-a57df396bd4b901a12316397d21fb928f27eee84.tar.gz ppe42-gcc-a57df396bd4b901a12316397d21fb928f27eee84.zip |
DR 1402
PR c++/53733
* cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
(struct lang_decl_fn): Add suppress_implicit_decl field.
* method.c (implicitly_declare_fn): Check it.
(process_subob_fn): Add no_implicit_p parm.
(walk_field_subobs, synthesized_method_walk): Likewise.
(maybe_explain_implicit_delete): Adjust.
(explain_implicit_non_constexpr): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189396 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 713001e121f..10efa2a663a 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1940,7 +1940,7 @@ struct GTY(()) lang_decl_fn { unsigned thunk_p : 1; unsigned this_thunk_p : 1; unsigned hidden_friend_p : 1; - /* 1 spare bit. */ + unsigned suppress_implicit_decl : 1; /* For a non-thunk function decl, this is a tree list of friendly classes. For a thunk function decl, it is the @@ -3107,6 +3107,12 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter) #define DECL_HIDDEN_FRIEND_P(NODE) \ (LANG_DECL_FN_CHECK (DECL_COMMON_CHECK (NODE))->hidden_friend_p) +/* Nonzero if NODE is a FUNCTION_DECL generated by implicitly_declare_fn + that we shouldn't actually declare implicitly; it is only used for + comparing to an =default declaration. */ +#define FNDECL_SUPPRESS_IMPLICIT_DECL(NODE) \ + (LANG_DECL_FN_CHECK (DECL_COMMON_CHECK (NODE))->suppress_implicit_decl) + /* Nonzero if DECL has been declared threadprivate by #pragma omp threadprivate. */ #define CP_DECL_THREADPRIVATE_P(DECL) \ |