removed scan.c and fixed a bug: 'struct a;' is an empty decl if struct a is already...
authorceriel <none@none>
Thu, 25 Jul 1991 16:00:32 +0000 (16:00 +0000)
committerceriel <none@none>
Thu, 25 Jul 1991 16:00:32 +0000 (16:00 +0000)
lang/cem/cemcom.ansi/.distr
lang/cem/cemcom.ansi/Makefile
lang/cem/cemcom.ansi/declar.g

index b41f18d..3581d2b 100644 (file)
@@ -85,7 +85,6 @@ proto.c
 proto.str
 replace.c
 replace.str
-scan.c
 sizes.h
 skip.c
 specials.h
index 476b382..0301127 100644 (file)
@@ -120,7 +120,7 @@ GHSRC =     botch_free.h dataflow.h debug.h density.h errout.h \
        nobitfield.h nopp.h nocross.h \
        nparams.h numsize.h parbufsize.h pathlength.h Lpars.h \
        strsize.h trgt_sizes.h textsize.h use_tmp.h spec_arith.h static.h \
-       regcount.h
+       regcount.h db_symtab.h
 
 HSRC = LLlex.h align.h arith.h assert.h atw.h class.h \
         input.h interface.h label.h level.h mes.h sizes.h specials.h \
index 61065fb..7a5e8ff 100644 (file)
@@ -463,7 +463,11 @@ struct_or_union_specifier(register struct type **tpp;)
                           * this means that we have to declare a new
                           * structure. (yegh)
                           */
-                         if (DOT == ';') declare_struct(fund, idf, tpp);
+                         if (DOT == ';' &&
+                             ( !idf->id_tag ||
+                                idf->id_tag->tg_level != level ||
+                                idf->id_tag->tg_type->tp_size < 0
+                            )) declare_struct(fund, idf, tpp);
                          else apply_struct(fund, idf, tpp);
                        }
                        /* empty */