aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-ada-spec.c5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/c-c++-common/dump-ada-spec-6.c10
4 files changed, 22 insertions, 2 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 55c2e60..8c99b75 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * c-ada-spec.c (print_ada_declaration): For typedef declarations, look
+ for nested types only if the type is a record or union and dump SLOC.
+
2016-11-09 Jason Merrill <jason@redhat.com>
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_template_auto.
diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
index a5395b6..42a2cd3 100644
--- a/gcc/c-family/c-ada-spec.c
+++ b/gcc/c-family/c-ada-spec.c
@@ -2813,7 +2813,7 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
}
else
{
- if (!TREE_VISITED (stub)
+ if (RECORD_OR_UNION_TYPE_P (typ)
&& DECL_SOURCE_FILE (stub) == source_file_base)
dump_nested_types (buffer, stub, stub, true, spc);
@@ -2821,7 +2821,8 @@ print_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
dump_generic_ada_node (buffer, t, type, spc, false, true);
pp_string (buffer, " is ");
dump_generic_ada_node (buffer, typ, type, spc, false, true);
- pp_semicolon (buffer);
+ pp_string (buffer, "; -- ");
+ dump_sloc (buffer, t);
}
TREE_VISITED (t) = 1;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 37ddec7..ee0282c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
+ * c-c++-common/dump-ada-spec-6.c: New test.
+
+2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
+
* gnat.dg/lto21.adb: New test.
* gnat.dg/lto21_pkg1.ads: New helper.
* gnat.dg/lto21_pkg2.ad[sb]: Likewise.
diff --git a/gcc/testsuite/c-c++-common/dump-ada-spec-6.c b/gcc/testsuite/c-c++-common/dump-ada-spec-6.c
new file mode 100644
index 0000000..fb31b3b
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/dump-ada-spec-6.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-fdump-ada-spec" } */
+
+typedef enum {
+ Zero
+} MyEnum;
+
+typedef MyEnum SomethingElse;
+
+/* { dg-final { cleanup-ada-spec } } */