Commit 27605cbe by Per Bothner Committed by Per Bothner

* collect2.c (main): Handle --no-demangle and --demangle flags.

From-SVN: r84631
parent 56cf8686
2004-07-13 Per Bothner <per@bothner.com>
* collect2.c (main): Handle --no-demangle and --demangle flags.
2004-07-13 Sebastian Pop <pop@cri.ensmp.fr> 2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
* Makefile.in (OBJS-common): Add tree-data-ref.o. * Makefile.in (OBJS-common): Add tree-data-ref.o.
......
...@@ -185,6 +185,7 @@ enum pass { ...@@ -185,6 +185,7 @@ enum pass {
int vflag; /* true if -v */ int vflag; /* true if -v */
static int rflag; /* true if -r */ static int rflag; /* true if -r */
static int strip_flag; /* true if -s */ static int strip_flag; /* true if -s */
static const char *demangle_flag;
#ifdef COLLECT_EXPORT_LIST #ifdef COLLECT_EXPORT_LIST
static int export_flag; /* true if -bE */ static int export_flag; /* true if -bE */
static int aix64_flag; /* true if -b64 */ static int aix64_flag; /* true if -b64 */
...@@ -1070,8 +1071,10 @@ main (int argc, char **argv) ...@@ -1070,8 +1071,10 @@ main (int argc, char **argv)
first_file = 1; first_file = 1;
#ifdef HAVE_LD_DEMANGLE #ifdef HAVE_LD_DEMANGLE
if (!no_demangle) if (!demangle_flag && !no_demangle)
*ld1++ = *ld2++ = "--demangle"; demangle_flag = "--demangle";
if (demangle_flag)
*ld1++ = *ld2++ = demangle_flag;
#endif #endif
while ((arg = *++argv) != (char *) 0) while ((arg = *++argv) != (char *) 0)
{ {
...@@ -1167,6 +1170,34 @@ main (int argc, char **argv) ...@@ -1167,6 +1170,34 @@ main (int argc, char **argv)
if (arg[2] == '\0') if (arg[2] == '\0')
vflag = 1; vflag = 1;
break; break;
case '-':
if (strcmp (arg, "--no-demangle") == 0)
{
demangle_flag = arg;
no_demangle = 1;
ld1--;
ld2--;
}
else if (strncmp (arg, "--demangle", 10) == 0)
{
demangle_flag = arg;
no_demangle = 0;
#ifndef HAVE_LD_DEMANGLE
if (arg[10] == '=')
{
enum demangling_styles style
= cplus_demangle_name_to_style (arg+11);
if (style == unknown_demangling)
error ("unknown demangling style '%s'", arg+11);
else
current_demangling_style = style;
}
#endif
ld1--;
ld2--;
}
break;
} }
} }
else if ((p = strrchr (arg, '.')) != (char *) 0 else if ((p = strrchr (arg, '.')) != (char *) 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment