]> Cypherpunks repositories - gostls13.git/commitdiff
multiple bugs in bitfield handling
authorRuss Cox <rsc@golang.org>
Tue, 31 Mar 2009 22:44:43 +0000 (15:44 -0700)
committerRuss Cox <rsc@golang.org>
Tue, 31 Mar 2009 22:44:43 +0000 (15:44 -0700)
R=r
DELTA=6  (3 added, 0 deleted, 3 changed)
OCL=26944
CL=26967

src/cmd/godefs/stabs.c

index 5a6f18b15cb7ca8051beed2f4367a5d2849ac9dd..e3f175f37ce2945342d54db290a824d486f26ef4 100644 (file)
@@ -140,6 +140,7 @@ Intrange intranges[] = {
 };
 
 static int kindsize[] = {
+       0,
        0,
        8,
        8,
@@ -366,10 +367,12 @@ parsedef(char **pp, char *name)
                        // into
                        //      uint8 x;
                        // hooray for bitfields.
+                       while(f->type->kind == Typedef)
+                               f->type = f->type->type;
                        while(Int16 <= f->type->kind && f->type->kind <= Uint64 && kindsize[f->type->kind] > f->size) {
-                               t = emalloc(sizeof *t);
-                               *t = *f->type;
-                               f->type = t;
+                               tt = emalloc(sizeof *tt);
+                               *tt = *f->type;
+                               f->type = tt;
                                f->type->kind -= 2;
                        }
                        p++;