diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-02-21 18:03:30 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-02-21 18:03:30 +0000 |
commit | 5ea0d4df1e599d967b02fd4dad59796554f7f263 (patch) | |
tree | c8afd1ae9df23e6b82e4925d9d64d1790ccfd3d2 /gcc/fortran/dump-parse-tree.c | |
parent | 9e6644c6fd3c9cf9f6a2fc6315052c953ab363cf (diff) | |
download | gcc-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.c | 37 |
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 |