aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarkus Schoepflin <markus.schoepflin@comsoft.de>2009-01-11 10:56:52 +0000
committerUros Bizjak <uros@gcc.gnu.org>2009-01-11 11:56:52 +0100
commit53a7ff9a9a3cd7c53a80e560d42fed25af8752b5 (patch)
tree85b1b8232c612c7db96129cf396694b9a64a637b /gcc
parent6f611d522575ffdf119732db14f5fef982b5f3e3 (diff)
downloadgcc-53a7ff9a9a3cd7c53a80e560d42fed25af8752b5.zip
gcc-53a7ff9a9a3cd7c53a80e560d42fed25af8752b5.tar.gz
gcc-53a7ff9a9a3cd7c53a80e560d42fed25af8752b5.tar.bz2
re PR debug/7055 ([alpha osf4] G++ 3.1 Produced bad debugging entries if compiled with -gcoff, also segv.)
PR debug/7055 * gcc/mips-tfile.c (parse_def): Fix parsing of def strings starting with digits. From-SVN: r143265
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/mips-tfile.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 22b14d2..1b108ed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
+
+ PR debug/7055
+ * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
+ starting with digits.
+
2009-01-10 Jakub Jelinek <jakub@redhat.com>
PR target/38695
diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c
index 87b278a..b984f47 100644
--- a/gcc/mips-tfile.c
+++ b/gcc/mips-tfile.c
@@ -2855,7 +2855,8 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ /* It's only a number if followed by ';' or ','. */
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
}
@@ -2911,7 +2912,7 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
if (t_ptr == &temp_array[0])
@@ -2985,7 +2986,7 @@ parse_def (const char *name_start)
{
int ch2;
arg_number = strtol (arg_start, (char **) &arg_end_p1, 0);
- if (arg_end_p1 != arg_start || ((ch2 = *arg_end_p1) != ';') || ch2 != ',')
+ if (arg_end_p1 != arg_start && (((ch2 = *arg_end_p1) == ';') || ch2 == ','))
arg_was_number++;
if (t_ptr == &temp_array[0])