aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-family/c-ada-spec.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2015-07-10 19:19:39 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2015-07-10 19:19:39 +0000
commitbb49ee66ef413295fee5f319d3c4129b624bbf8e (patch)
treefb2eeff7b927ad203e2147d132d00c149b492201 /gcc/c-family/c-ada-spec.c
parent112fc9c3994053942c51b1bf4c58e51f26cf9f90 (diff)
downloadgcc-bb49ee66ef413295fee5f319d3c4129b624bbf8e.zip
gcc-bb49ee66ef413295fee5f319d3c4129b624bbf8e.tar.gz
gcc-bb49ee66ef413295fee5f319d3c4129b624bbf8e.tar.bz2
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
Diffstat (limited to 'gcc/c-family/c-ada-spec.c')
-rw-r--r--gcc/c-family/c-ada-spec.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
index be8ef24..3a1ffe6 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