dump-parse-tree.c (debug): Implement for gfc_expr *, gfc_typespec *, gfc_typespec...
authorThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 21 Feb 2019 18:03:30 +0000 (18:03 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Thu, 21 Feb 2019 18:03:30 +0000 (18:03 +0000)
2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

    * dump-parse-tree.c (debug): Implement for gfc_expr *,
    gfc_typespec *, gfc_typespec and gfc_symbol *.

From-SVN: r269071

gcc/fortran/ChangeLog
gcc/fortran/dump-parse-tree.c

index f8df63db99b50a0de6999ad4c9355eda936c0cd2..c3bc30c42f628a1afd4b150c860656743c91d95f 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * dump-parse-tree.c (debug): Implement for gfc_expr *,
+       gfc_typespec *, gfc_typespec and gfc_symbol *.
+
 2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/86119
index 3099ae86e5e0f5f80e361f0478c0c4d83ff037c6..f798ed0a44715e48dd8e3f26c8d2b7266e97aca8 100644 (file)
@@ -48,11 +48,37 @@ static void show_expr (gfc_expr *p);
 static void show_code_node (int, gfc_code *);
 static void show_namespace (gfc_namespace *ns);
 static void show_code (int, gfc_code *);
-
+static void show_symbol (gfc_symbol *);
+static void show_typespec (gfc_typespec *);
 
 /* Allow dumping of an expression in the debugger.  */
 void gfc_debug_expr (gfc_expr *);
 
+void debug (gfc_expr *e)
+{
+  FILE *tmp = dumpfile;
+  dumpfile = stderr;
+  show_expr (e);
+  fputc (' ', dumpfile);
+  show_typespec (&e->ts);
+  fputc ('\n', dumpfile);
+  dumpfile = tmp;
+}
+
+void debug (gfc_typespec *ts)
+{
+  FILE *tmp = dumpfile;
+  dumpfile = stderr;
+  show_typespec (ts);
+  fputc ('\n', dumpfile);
+  dumpfile = tmp;
+}
+
+void debug (gfc_typespec ts)
+{
+  debug (&ts);
+}
+
 void
 gfc_debug_expr (gfc_expr *e)
 {
@@ -76,6 +102,15 @@ gfc_debug_code (gfc_code *c)
   dumpfile = tmp;
 }
 
+void debug (gfc_symbol *sym)
+{
+  FILE *tmp = dumpfile;
+  dumpfile = stderr;
+  show_symbol (sym);
+  fputc ('\n', dumpfile);
+  dumpfile = tmp;
+}
+
 /* Do indentation for a specific level.  */
 
 static inline void