OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* config/rs6000/rs6000.opt (mspe): Remove Var property.
[pf3gnuchains/gcc-fork.git]
/
gcc
/
tlink.c
diff --git
a/gcc/tlink.c
b/gcc/tlink.c
index
8e10eeb
..
53c51dc
100644
(file)
--- a/
gcc/tlink.c
+++ b/
gcc/tlink.c
@@
-1,7
+1,7
@@
/* Scan linker error messages for missing template instantiations and provide
them.
/* Scan linker error messages for missing template instantiations and provide
them.
- Copyright (C) 1995, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+ Copyright (C) 1995, 1998, 1999, 2000, 2001, 2003, 2004, 2005
, 2007, 2008
Free Software Foundation, Inc.
Contributed by Jason Merrill (jason@cygnus.com).
Free Software Foundation, Inc.
Contributed by Jason Merrill (jason@cygnus.com).
@@
-9,7
+9,7
@@
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
-Software Foundation; either version
2
, or (at your option) any later
+Software Foundation; either version
3
, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
@@
-18,9
+18,8
@@
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA. */
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
#include "config.h"
#include "system.h"
#include "config.h"
#include "system.h"
@@
-607,7
+606,7
@@
scan_linker_output (const char *fname)
{
FILE *stream = fopen (fname, "r");
char *line;
{
FILE *stream = fopen (fname, "r");
char *line;
- int skip_next_line = 0;
+ int skip_next_
in_
line = 0;
while ((line = tfgets (stream)) != NULL)
{
while ((line = tfgets (stream)) != NULL)
{
@@
-616,8
+615,11
@@
scan_linker_output (const char *fname)
int end;
int ok = 0;
int end;
int ok = 0;
- if (skip_next_line)
- continue;
+ /* On darwin9, we might have to skip " in " lines as well. */
+ if (skip_next_in_line
+ && strstr (p, " in "))
+ continue;
+ skip_next_in_line = 0;
while (*p && ISSPACE ((unsigned char) *p))
++p;
while (*p && ISSPACE ((unsigned char) *p))
++p;
@@
-655,21
+657,23
@@
scan_linker_output (const char *fname)
if (! sym && ! end)
/* Try a mangled name in quotes. */
{
if (! sym && ! end)
/* Try a mangled name in quotes. */
{
- c
onst c
har *oldq = q + 1;
+ char *oldq = q + 1;
demangled *dem = 0;
q = 0;
demangled *dem = 0;
q = 0;
- /* On darwin9, we look for "foo" referenced from:\n
.*\n
*/
+ /* On darwin9, we look for "foo" referenced from:\n
\(.* in .*\n\)*
*/
if (strcmp (oldq, "referenced from:") == 0)
{
/* We have to remember that we found a symbol to tweak. */
ok = 1;
if (strcmp (oldq, "referenced from:") == 0)
{
/* We have to remember that we found a symbol to tweak. */
ok = 1;
- /* We actually want to start from the first word on the line. */
+ /* We actually want to start from the first word on the
+ line. */
oldq = p;
oldq = p;
- /* Since the format is multiline, we have to skip the next line. */
- skip_next_line = 1;
+ /* Since the format is multiline, we have to skip
+ following lines with " in ". */
+ skip_next_in_line = 1;
}
/* First try `GNU style'. */
}
/* First try `GNU style'. */
@@
-679,6
+683,9
@@
scan_linker_output (const char *fname)
/* Then try "double quotes". */
else if (p = strchr (oldq, '"'), p)
p++, q = strchr (p, '"');
/* Then try "double quotes". */
else if (p = strchr (oldq, '"'), p)
p++, q = strchr (p, '"');
+ /* Then try 'single quotes'. */
+ else if (p = strchr (oldq, '\''), p)
+ p++, q = strchr (p, '\'');
else {
/* Then try entire line. */
q = strchr (oldq, 0);
else {
/* Then try entire line. */
q = strchr (oldq, 0);