diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-10 15:39:29 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-10 15:39:29 +0000 |
commit | 402eb8ac5a3255dc923f7737c654911d4a7196b2 (patch) | |
tree | 51f0f35aa7e2fa02035c07cd892b72dbdf06dc10 /gcc/collect2.c | |
parent | b21ae3fffb30ed83f0993f31539751f935d85e75 (diff) | |
download | gcc-402eb8ac5a3255dc923f7737c654911d4a7196b2.tar.gz |
* collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
(dump_file): Only pad the demangled name with spaces if the
mangled name was padded with spaces.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43903 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r-- | gcc/collect2.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c index 83ed200da4f..1239b983756 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -163,6 +163,10 @@ int do_collecting = 1; #else int do_collecting = 0; #endif + +/* Nonzero if we should suppress the automatic demangling of identifiers + in linker error messages. Set from COLLECT_NO_DEMANGLE. */ +int no_demangle; /* Linked lists of constructor and destructor names. */ @@ -522,7 +526,6 @@ dump_file (name) const char *name; { FILE *stream = fopen (name, "r"); - int no_demangle = !! getenv ("COLLECT_NO_DEMANGLE"); if (stream == 0) return; @@ -556,7 +559,7 @@ dump_file (name) fputs (result, stderr); diff = strlen (word) - strlen (result); - while (diff > 0) + while (diff > 0 && c == ' ') --diff, putc (' ', stderr); while (diff < 0 && c == ' ') ++diff, c = getc (stream); @@ -858,6 +861,11 @@ main (argc, argv) int first_file; int num_c_args = argc+9; + no_demangle = !! getenv ("COLLECT_NO_DEMANGLE"); + + /* Suppress demangling by the real linker, which may be broken. */ + putenv (xstrdup ("COLLECT_NO_DEMANGLE=")); + #if defined (COLLECT2_HOST_INITIALIZATION) /* Perform system dependent initialization, if neccessary. */ COLLECT2_HOST_INITIALIZATION; |