]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/7055 ([alpha osf4] G++ 3.1 Produced bad debugging entries if compiled...
authorMarkus Schoepflin <markus.schoepflin@comsoft.de>
Sun, 11 Jan 2009 10:56:52 +0000 (10:56 +0000)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 11 Jan 2009 10:56:52 +0000 (11:56 +0100)
PR debug/7055
* gcc/mips-tfile.c (parse_def): Fix parsing of def strings
starting with digits.

From-SVN: r143265

gcc/ChangeLog
gcc/mips-tfile.c

index 22b14d21b3677d71cc8408bf37d406f77d54516d..1b108ed3694a55eee18e6a3e6aaea5fb40237c0b 100644 (file)
@@ -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
index 87b278ab4d6d016ae64a508e5ab857cfcb2a7252..b984f47cb3faedec5019deba02c1bea85cd289db 100644 (file)
@@ -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])