Commit 2a7fb83f by Eric Botcazou Committed by Eric Botcazou

c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.

c-family/
	* c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
	* c-ada-spec.c (print_ada_declaration): Skip move constructors.
cp/
	* decl2.c (cpp_check): Deal with IS_MOVE_CONSTRUCTOR.

From-SVN: r225525
parent fe21b3c2
2015-07-07 Eric Botcazou <ebotcazou@adacore.com>
* c-ada-spec.h (cpp_operation): Add IS_MOVE_CONSTRUCTOR.
* c-ada-spec.c (print_ada_declaration): Skip move constructors.
2015-07-01 Jason Merrill <jason@redhat.com>
* c-common.h (D_CXX11): Rename from D_CXX0X.
......
......@@ -2891,6 +2891,7 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
bool is_constructor = false;
bool is_destructor = false;
bool is_copy_constructor = false;
bool is_move_constructor = false;
if (!decl_name)
return 0;
......@@ -2901,11 +2902,12 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
is_constructor = cpp_check (t, IS_CONSTRUCTOR);
is_destructor = cpp_check (t, IS_DESTRUCTOR);
is_copy_constructor = cpp_check (t, IS_COPY_CONSTRUCTOR);
is_move_constructor = cpp_check (t, IS_MOVE_CONSTRUCTOR);
}
/* Skip copy constructors: some are internal only, and those that are
not cannot be called easily from Ada anyway. */
if (is_copy_constructor)
/* Skip copy constructors and C++11 move constructors: some are internal
only and those that are not cannot be called easily from Ada. */
if (is_copy_constructor || is_move_constructor)
return 0;
if (is_constructor || is_destructor)
......
......@@ -30,6 +30,7 @@ typedef enum {
IS_CONSTRUCTOR,
IS_DESTRUCTOR,
IS_COPY_CONSTRUCTOR,
IS_MOVE_CONSTRUCTOR,
IS_TEMPLATE,
IS_TRIVIAL
} cpp_operation;
......
2015-07-07 Eric Botcazou <ebotcazou@adacore.com>
* decl2.c (cpp_check): Deal with IS_MOVE_CONSTRUCTOR.
2015-07-06 Jason Merrill <jason@redhat.com>
* pt.c (reduce_template_parm_level): Also build the TYPE_DECL
......
......@@ -4077,6 +4077,8 @@ cpp_check (tree t, cpp_operation op)
return DECL_DESTRUCTOR_P (t);
case IS_COPY_CONSTRUCTOR:
return DECL_COPY_CONSTRUCTOR_P (t);
case IS_MOVE_CONSTRUCTOR:
return DECL_MOVE_CONSTRUCTOR_P (t);
case IS_TEMPLATE:
return TREE_CODE (t) == TEMPLATE_DECL;
case IS_TRIVIAL:
......
2015-07-07 Eric Botcazou <ebotcazou@adacore.com>
* g++.dg/other/dump-ada-spec-8.C: New test.
2015-07-07 David Malcolm <dmalcolm@redhat.com>
PR jit/66783
......
/* { dg-do compile } */
/* { dg-options "-fdump-ada-spec" } */
template<class T, class U> class Generic_Array
{
Generic_Array();
};
template class Generic_Array<char, int>;
/* { dg-final { scan-ada-spec-not "access Generic_Array" } } */
/* { dg-final { cleanup-ada-spec } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment