From bb49ee66ef413295fee5f319d3c4129b624bbf8e Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 10 Jul 2015 19:19:39 +0000 Subject: [PATCH] c-ada-spec.h (cpp_operation): Revert latest change. c-family/ * c-ada-spec.h (cpp_operation): Revert latest change. * c-ada-spec.c (print_ada_declaration): Likewise. Skip implicit constructors and destructors. cp/ * decl2.c (cpp_check): Revert latest change. From-SVN: r225686 --- gcc/c-family/ChangeLog | 6 ++++++ gcc/c-family/c-ada-spec.c | 11 ++++++----- gcc/c-family/c-ada-spec.h | 1 - gcc/cp/ChangeLog | 4 ++++ gcc/cp/decl2.c | 2 -- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index b9120938c493..b71856129e9f 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2015-07-10 Eric Botcazou + + * c-ada-spec.h (cpp_operation): Revert latest change. + * c-ada-spec.c (print_ada_declaration): Likewise. Skip implicit + constructors and destructors. + 2015-07-09 Andrew MacLeod * c-common.h: Adjust includes for flags.h changes. diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c index be8ef244b960..3a1ffe6ad4ac 100644 --- a/gcc/c-family/c-ada-spec.c +++ b/gcc/c-family/c-ada-spec.c @@ -2887,7 +2887,6 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc) bool is_method = TREE_CODE (TREE_TYPE (t)) == METHOD_TYPE; tree decl_name = DECL_NAME (t); bool is_abstract = false; - bool is_constexpr = false; bool is_constructor = false; bool is_destructor = false; bool is_copy_constructor = false; @@ -2899,7 +2898,6 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc) if (cpp_check) { is_abstract = cpp_check (t, IS_ABSTRACT); - is_constexpr = cpp_check (t, IS_CONSTEXPR); is_constructor = cpp_check (t, IS_CONSTRUCTOR); is_destructor = cpp_check (t, IS_DESTRUCTOR); is_copy_constructor = cpp_check (t, IS_COPY_CONSTRUCTOR); @@ -2913,8 +2911,8 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc) if (is_constructor || is_destructor) { - /* Skip constexpr default constructors. */ - if (is_constexpr) + /* ??? Skip implicit constructors/destructors for now. */ + if (DECL_ARTIFICIAL (t)) return 0; /* Only consider constructors/destructors for complete objects. */ @@ -3050,9 +3048,12 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc) if (num_fields == 1) is_interface = 1; - /* Also check that there are only virtual methods. */ + /* Also check that there are only pure virtual methods. Since the + class is empty, we can skip implicit constructors/destructors. */ for (tmp = TYPE_METHODS (TREE_TYPE (t)); tmp; tmp = TREE_CHAIN (tmp)) { + if (DECL_ARTIFICIAL (tmp)) + continue; if (cpp_check (tmp, IS_ABSTRACT)) is_abstract_record = 1; else diff --git a/gcc/c-family/c-ada-spec.h b/gcc/c-family/c-ada-spec.h index 116ac0bb6447..08d268573c7b 100644 --- a/gcc/c-family/c-ada-spec.h +++ b/gcc/c-family/c-ada-spec.h @@ -27,7 +27,6 @@ along with GCC; see the file COPYING3. If not see typedef enum { HAS_DEPENDENT_TEMPLATE_ARGS, IS_ABSTRACT, - IS_CONSTEXPR, IS_CONSTRUCTOR, IS_DESTRUCTOR, IS_COPY_CONSTRUCTOR, diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3640ccefc804..4f61c89b9484 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2015-07-10 Eric Botcazou + + * decl2.c (cpp_check): Revert latest change. + 2015-07-09 Jason Merrill * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Call diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index a1446c25cb8a..cac0508f881a 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4070,8 +4070,6 @@ cpp_check (tree t, cpp_operation op) } case IS_ABSTRACT: return DECL_PURE_VIRTUAL_P (t); - case IS_CONSTEXPR: - return DECL_DECLARED_CONSTEXPR_P (t); case IS_CONSTRUCTOR: return DECL_CONSTRUCTOR_P (t); case IS_DESTRUCTOR: -- 2.43.5