diff options
author | Nick Clifton <nickc@redhat.com> | 2000-07-20 18:02:56 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-07-20 18:02:56 +0000 |
commit | f2e48355663bacf76e75fc39da1d80f6a100f13a (patch) | |
tree | 94f24ebb91f32a73b46cd18cdb4da767f1233dbc /binutils/addr2line.c | |
parent | d2b7273bea9ba04c8de4d71ffb6ae4129b73e3d5 (diff) | |
download | binutils-redhat-f2e48355663bacf76e75fc39da1d80f6a100f13a.tar.gz |
Add optional style argument to --demangle switch.
Diffstat (limited to 'binutils/addr2line.c')
-rw-r--r-- | binutils/addr2line.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/binutils/addr2line.c b/binutils/addr2line.c index 20c7eef437..9232a9e63c 100644 --- a/binutils/addr2line.c +++ b/binutils/addr2line.c @@ -51,7 +51,7 @@ static asymbol **syms; /* Symbol table. */ static struct option long_options[] = { {"basenames", no_argument, NULL, 's'}, - {"demangle", no_argument, NULL, 'C'}, + {"demangle", optional_argument, NULL, 'C'}, {"exe", required_argument, NULL, 'e'}, {"functions", no_argument, NULL, 'f'}, {"target", required_argument, NULL, 'b'}, @@ -75,7 +75,7 @@ usage (stream, status) { fprintf (stream, _("\ Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n\ - [-e executable] [--exe=executable] [--demangle]\n\ + [-e executable] [--exe=executable] [--demangle[=style]]\n\ [--basenames] [--functions] [addr addr ...]\n"), program_name); list_supported_targets (program_name, stream); @@ -301,6 +301,17 @@ main (argc, argv) break; case 'C': do_demangle = true; + if (optarg != NULL) + { + enum demangling_styles style; + + style = cplus_demangle_name_to_style (optarg); + if (style == unknown_demangling) + fatal (_("unknown demangling style `%s'"), + optarg); + + cplus_demangle_set_style (style); + } break; case 'e': filename = optarg; |