diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2015-07-08 21:58:10 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2015-07-08 21:58:10 +0000 |
commit | a9dcd529a9c24cc4960c5b3941dd6aa780bfa8a4 (patch) | |
tree | 523c4a6e20b7581ef5df5cc9b8d5fc7f78bd3b4f /gcc/c-family | |
parent | b03b462f1ffdef448aa666d8079cd047bcddee77 (diff) | |
download | gcc-a9dcd529a9c24cc4960c5b3941dd6aa780bfa8a4.zip gcc-a9dcd529a9c24cc4960c5b3941dd6aa780bfa8a4.tar.gz gcc-a9dcd529a9c24cc4960c5b3941dd6aa780bfa8a4.tar.bz2 |
c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
c-family/
* c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR.
* c-ada-spec.c (print_ada_declaration): Skip constexpr constructors.
cp/
* decl2.c (cpp_check): Deal with IS_CONSTEXPR.
From-SVN: r225585
Diffstat (limited to 'gcc/c-family')
-rw-r--r-- | gcc/c-family/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-family/c-ada-spec.c | 6 | ||||
-rw-r--r-- | gcc/c-family/c-ada-spec.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 63d592d..75e43fd 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2015-07-08 Eric Botcazou <ebotcazou@adacore.com> + + * c-ada-spec.h (cpp_operation): Add IS_CONSTEXPR. + * c-ada-spec.c (print_ada_declaration): Skip constexpr constructors. + 2015-07-08 Jakub Jelinek <jakub@redhat.com> * c-omp.c (c_omp_declare_simd_clauses_to_numbers): If all clauses diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c index 38a8fb2..be8ef24 100644 --- a/gcc/c-family/c-ada-spec.c +++ b/gcc/c-family/c-ada-spec.c @@ -2887,6 +2887,7 @@ 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; @@ -2898,6 +2899,7 @@ 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); @@ -2911,6 +2913,10 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc) if (is_constructor || is_destructor) { + /* Skip constexpr default constructors. */ + if (is_constexpr) + return 0; + /* Only consider constructors/destructors for complete objects. */ if (strncmp (IDENTIFIER_POINTER (decl_name), "__comp", 6) != 0) return 0; diff --git a/gcc/c-family/c-ada-spec.h b/gcc/c-family/c-ada-spec.h index 08d2685..116ac0b 100644 --- a/gcc/c-family/c-ada-spec.h +++ b/gcc/c-family/c-ada-spec.h @@ -27,6 +27,7 @@ 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, |