c-ada-spec.h (cpp_operation): Revert latest change.
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 10 Jul 2015 19:19:39 +0000 (19:19 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 10 Jul 2015 19:19:39 +0000 (19:19 +0000)
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
gcc/c-family/c-ada-spec.c
gcc/c-family/c-ada-spec.h
gcc/cp/ChangeLog
gcc/cp/decl2.c

index b9120938c493bbbfee15bb0835493a74f1566707..b71856129e9f54bf42e29bfe35e056ea2d72b71f 100644 (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.
index be8ef244b96089f12d97c65d425949cd38b5d86e..3a1ffe6ad4ac3365f98218ad657b5eb041abd123 100644 (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
index 116ac0bb64477623f2aa173f91416e12c1667115..08d268573c7b0b0a4459f312f9a114e68e4879c7 100644 (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,
index 3640ccefc8041012342856743b3c03d47ad65114..4f61c89b9484d8d8d67d3a4ba71960df2102223f 100644 (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
index a1446c25cb8a4fa2388b7ddedde4a9bf1c7d513f..cac0508f881af2e0cd21a135b6d594787d30b328 100644 (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: