From: ebotcazou Date: Thu, 26 Nov 2015 12:04:50 +0000 (+0000) Subject: PR c++/68527 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f63d9c4e56157696824c9d628444ac6e5028df69;p=thirdparty%2Fgcc.git PR c++/68527 * c-ada-spec.c (dump_nested_types): Add guard for error_mark_node. (print_ada_struct_decl): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230942 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 6e7b0f761f24..595fc3a9d637 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2015-11-26 Eric Botcazou + + PR c++/68527 + * c-ada-spec.c (dump_nested_types): Add guard for error_mark_node. + (print_ada_struct_decl): Likewise. + 2015-11-23 Igor Zamyatin PR c++/68001 diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c index e85c1a9a7d5b..3726a681fa9d 100644 --- a/gcc/c-family/c-ada-spec.c +++ b/gcc/c-family/c-ada-spec.c @@ -2461,7 +2461,8 @@ dump_nested_types (pretty_printer *buffer, tree t, tree parent, bool forward, field = TYPE_FIELDS (outer); while (field) { - if ((TREE_TYPE (field) != outer + if (((TREE_TYPE (field) != outer + && TREE_TYPE (field) != error_mark_node) || (TREE_CODE (TREE_TYPE (field)) == POINTER_TYPE && TREE_TYPE (TREE_TYPE (field)) != outer)) && (!TYPE_NAME (TREE_TYPE (field)) @@ -3230,9 +3231,10 @@ print_ada_struct_decl (pretty_printer *buffer, tree node, tree type, int spc, } } /* Avoid printing the structure recursively. */ - else if ((TREE_TYPE (tmp) != node - || (TREE_CODE (TREE_TYPE (tmp)) == POINTER_TYPE - && TREE_TYPE (TREE_TYPE (tmp)) != node)) + else if (((TREE_TYPE (tmp) != node + && TREE_TYPE (tmp) != error_mark_node) + || (TREE_CODE (TREE_TYPE (tmp)) == POINTER_TYPE + && TREE_TYPE (TREE_TYPE (tmp)) != node)) && TREE_CODE (tmp) != TYPE_DECL && !TREE_STATIC (tmp)) {