diff options
Diffstat (limited to 'gcc/tree-dump.c')
-rw-r--r-- | gcc/tree-dump.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/tree-dump.c b/gcc/tree-dump.c index 314c29f..2e945e4 100644 --- a/gcc/tree-dump.c +++ b/gcc/tree-dump.c @@ -315,6 +315,7 @@ dequeue_and_dump (dump_info_p di) } else if (DECL_P (t)) { + expanded_location xloc; /* All declarations have names. */ if (DECL_NAME (t)) dump_child ("name", DECL_NAME (t)); @@ -325,18 +326,19 @@ dequeue_and_dump (dump_info_p di) queue_and_dump_type (di, t); dump_child ("scpe", DECL_CONTEXT (t)); /* And a source position. */ - if (DECL_SOURCE_FILE (t)) + xloc = expand_location (DECL_SOURCE_LOCATION (t)); + if (xloc.file) { - const char *filename = strrchr (DECL_SOURCE_FILE (t), '/'); + const char *filename = strrchr (xloc.file, '/'); if (!filename) - filename = DECL_SOURCE_FILE (t); + filename = xloc.file; else /* Skip the slash. */ ++filename; dump_maybe_newline (di); fprintf (di->stream, "srcp: %s:%-6d ", filename, - DECL_SOURCE_LINE (t)); + xloc.line); di->column += 6 + strlen (filename) + 8; } /* And any declaration can be compiler-generated. */ |