aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2019-02-21 18:03:30 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2019-02-21 18:03:30 +0000
commit5ea0d4df1e599d967b02fd4dad59796554f7f263 (patch)
treec8afd1ae9df23e6b82e4925d9d64d1790ccfd3d2 /gcc/fortran/dump-parse-tree.c
parent9e6644c6fd3c9cf9f6a2fc6315052c953ab363cf (diff)
downloadgcc-5ea0d4df1e599d967b02fd4dad59796554f7f263.zip
gcc-5ea0d4df1e599d967b02fd4dad59796554f7f263.tar.gz
gcc-5ea0d4df1e599d967b02fd4dad59796554f7f263.tar.bz2
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> * dump-parse-tree.c (debug): Implement for gfc_expr *, gfc_typespec *, gfc_typespec and gfc_symbol *. From-SVN: r269071
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r--gcc/fortran/dump-parse-tree.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 3099ae8..f798ed0 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -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