aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2013-09-06 15:28:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2013-09-06 15:28:02 +0000
commit2c641f8b3a3059353ac6f8798d10d2f5c611109b (patch)
treea2dc3968bfecca8999f0978eb3c9d4b7086dd505 /gcc/toplev.c
parenta81b0a3dbb7fa136464e2ce2d1e6702856791f9d (diff)
downloadgcc-2c641f8b3a3059353ac6f8798d10d2f5c611109b.zip
gcc-2c641f8b3a3059353ac6f8798d10d2f5c611109b.tar.gz
gcc-2c641f8b3a3059353ac6f8798d10d2f5c611109b.tar.bz2
toplev.c (output_stack_usage): Be prepared for suffixes created by the compiler in the function names.
* toplev.c (output_stack_usage): Be prepared for suffixes created by the compiler in the function names. From-SVN: r202339
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 4d12bc9..3473211 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1017,22 +1017,35 @@ output_stack_usage (void)
{
expanded_location loc
= expand_location (DECL_SOURCE_LOCATION (current_function_decl));
- const char *raw_id, *id;
-
- /* Strip the scope prefix if any. */
- raw_id = lang_hooks.decl_printable_name (current_function_decl, 2);
- id = strrchr (raw_id, '.');
- if (id)
- id++;
+ /* We don't want to print the full qualified name because it can be long,
+ so we strip the scope prefix, but we may need to deal with the suffix
+ created by the compiler. */
+ const char *suffix
+ = strchr (IDENTIFIER_POINTER (DECL_NAME (current_function_decl)), '.');
+ const char *name
+ = lang_hooks.decl_printable_name (current_function_decl, 2);
+ if (suffix)
+ {
+ const char *dot = strchr (name, '.');
+ while (dot && strcasecmp (dot, suffix) != 0)
+ {
+ name = dot + 1;
+ dot = strchr (name, '.');
+ }
+ }
else
- id = raw_id;
+ {
+ const char *dot = strrchr (name, '.');
+ if (dot)
+ name = dot + 1;
+ }
fprintf (stack_usage_file,
"%s:%d:%d:%s\t"HOST_WIDE_INT_PRINT_DEC"\t%s\n",
lbasename (loc.file),
loc.line,
loc.column,
- id,
+ name,
stack_usage,
stack_usage_kind_str[stack_usage_kind]);
}