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
This commit is contained in:
Eric Botcazou 2015-07-08 21:58:10 +00:00 committed by Eric Botcazou
parent b03b462f1f
commit a9dcd529a9
7 changed files with 41 additions and 0 deletions

View File

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

View File

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

View File

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

View File

@ -1,3 +1,7 @@
2015-07-08 Eric Botcazou <ebotcazou@adacore.com>
* decl2.c (cpp_check): Deal with IS_CONSTEXPR.
2015-07-08 Jakub Jelinek <jakub@redhat.com>
* decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.

View File

@ -4070,6 +4070,8 @@ 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:

View File

@ -1,3 +1,7 @@
2015-07-08 Eric Botcazou <ebotcazou@adacore.com>
* g++.dg/other/dump-ada-spec-9.C: New test.
2015-07-08 Jakub Jelinek <jakub@redhat.com>
* g++.dg/vect/vect.exp: Run also simd* tests.

View File

@ -0,0 +1,19 @@
/* { dg-do compile } */
/* { dg-options "-fdump-ada-spec" } */
class Base {
public:
virtual void Primitive ();
};
void Base::Primitive () {
}
void Dispatch (Base * B) {
B->Primitive ();
}
/* { dg-final { scan-ada-spec-not "CPP_Constructor" } } */
/* { dg-final { cleanup-ada-spec } } */