aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-ada-spec.c11
-rw-r--r--gcc/c-family/c-ada-spec.h1
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl2.c2
5 files changed, 16 insertions, 8 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index b912093..b718561 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -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.
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
diff --git a/gcc/c-family/c-ada-spec.h b/gcc/c-family/c-ada-spec.h
index 116ac0b..08d2685 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 3640cce..4f61c89 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index a1446c2..cac0508 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: