* stabsread.c (read_enum_type): When pending enum symbols are
authorPer Bothner <per@bothner.com>
Fri, 13 Jan 1995 06:24:23 +0000 (06:24 +0000)
committerPer Bothner <per@bothner.com>
Fri, 13 Jan 1995 06:24:23 +0000 (06:24 +0000)
put into the enum type, they must be inserted in "backwards
order, in case we've overflowed a struct pending buffer.

gdb/ChangeLog
gdb/stabsread.c

index f10d7bc683916f489e24327b3f32bfec76d1a7da..4acad3419666ff15cd3f7bce33d852f3d0f0e584 100644 (file)
@@ -1,3 +1,9 @@
+Thu Jan 12 21:23:25 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+       * stabsread.c (read_enum_type):  When pending enum symbols are
+       put into the enum type, they must be inserted in "backwards
+       order, in case we've overflowed a struct pending buffer.
+
 Thu Jan 12 15:02:40 1995  Stu Grossman  (grossman@cygnus.com)
 
        * gdbtk.c gdbtk.tcl:  Update/add copyright.
index 8bc9948bea02390eec9fc073a38f8299d7866c4d..ac334b278f8473397d0998aa193dafa3aa121256 100644 (file)
@@ -3096,12 +3096,11 @@ read_enum_type (pp, type, objfile)
      that in something like "enum {FOO, LAST_THING=FOO}" we print
      FOO, not LAST_THING.  */
 
-  for (syms = *symlist, n = 0; syms; syms = syms->next)
+  for (syms = *symlist, n = nsyms - 1; ; syms = syms->next)
     {
-      int j = 0;
-      if (syms == osyms)
-       j = o_nsyms;
-      for (; j < syms->nsyms; j++,n++)
+      int last = syms == osyms ? o_nsyms : 0;
+      int j = syms->nsyms;
+      for (; --j >= last; --n)
        {
          struct symbol *xsym = syms->symbol[j];
          SYMBOL_TYPE (xsym) = type;