From: Markus Schoepflin Date: Sun, 11 Jan 2009 10:56:52 +0000 (+0000) Subject: re PR debug/7055 ([alpha osf4] G++ 3.1 Produced bad debugging entries if compiled... X-Git-Tag: releases/gcc-4.4.0~936 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=53a7ff9a9a3cd7c53a80e560d42fed25af8752b5;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22b14d21b367..1b108ed3694a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-01-11 Markus Schoepflin + + PR debug/7055 + * gcc/mips-tfile.c (parse_def): Fix parsing of def strings + starting with digits. + 2009-01-10 Jakub Jelinek PR target/38695 diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c index 87b278ab4d6d..b984f47cb3fa 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])