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
This commit is contained in:
Eric Botcazou 2015-07-10 19:19:39 +00:00 committed by Eric Botcazou
parent 112fc9c399
commit bb49ee66ef
5 changed files with 16 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2015-07-10 Eric Botcazou <ebotcazou@adacore.com>
* 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 <amacleod@redhat.com>
* c-common.h: Adjust includes for flags.h changes.

View File

@ -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

View File

@ -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,

View File

@ -1,3 +1,7 @@
2015-07-10 Eric Botcazou <ebotcazou@adacore.com>
* decl2.c (cpp_check): Revert latest change.
2015-07-09 Jason Merrill <jason@redhat.com>
* pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Call

View File

@ -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: