Article: Q33628
Product(s): See article
Version(s): 3.00 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | buglist3.00 buglist4.00 buglist4.00b buglist4.50 B_BasicCom | mspl13_basic
Last Modified: 20-SEP-1990

If a program has more than 30 named COMMON blocks, it will give the
following error at LINK time:

   fatal error L1050:  too many groups in one module

The program runs correctly inside the QuickBASIC editor.

Microsoft has confirmed this to be a problem in QuickBASIC versions
3.00, 4.00, and 4.00b; in Microsoft BASIC Compiler versions 6.00 and
6.00b for MS OS/2 and MS-DOS (buglist6.00, buglist6.00b); and in
Microsoft BASIC Professional Development System (PDS) versions 7.00
and 7.10 for MS OS/2 and MS-DOS (buglist7.00, buglist7.10). We are
researching this problem and will post new information here as it
becomes available.

In QuickBASIC version 3.00, the error message is as follows:

   Too many GRPDEFS in one module

LINK.EXE is limited to support only 21 GRPDEF records per .OBJ module;
BASIC needs to be better optimized to produce a minimum number of
GRPDEF records per .OBJ module when using named COMMON blocks. This
feature is under review and will be considered for inclusion in a
future release.

The following code example duplicates the problem:

   COMMON SHARED /Ann/ a1
   COMMON SHARED /Brent/ a2
   COMMON SHARED /Bill/ a3
   COMMON SHARED /Darren/ a4
   COMMON SHARED /Jeff/ a5
   COMMON SHARED /Jim/ a6
   COMMON SHARED /John/ a7
   COMMON SHARED /Kyle/ a8
   COMMON SHARED /LiKai/ a9
   COMMON SHARED /Michelle/ a10
   COMMON SHARED /Mike1/ a11
   COMMON SHARED /Mike2/ a12
   COMMON SHARED /Nancy1/ a13
   COMMON SHARED /Nancy2/ a14
   COMMON SHARED /Rich/ a15
   COMMON SHARED /Sholeh/ a16
   COMMON SHARED /Teri/ a17
   COMMON SHARED /Terri/ a18
   COMMON SHARED /Terry/ a19
   COMMON SHARED /Todd/ a20
   COMMON SHARED /Tom/ a21
   COMMON SHARED /Greg/ a22
   COMMON SHARED /Ziggy/ a23
   COMMON SHARED /Dudley/ a24
   COMMON SHARED /Beowulf/ a25
   COMMON SHARED /Daffy/ a26
   COMMON SHARED /Yoda/ a27
   COMMON SHARED /Peewee/ a28
   COMMON SHARED /Desslok/ a29
   COMMON SHARED /Mel/ a30
   COMMON SHARED /Harrison/ a31
   PRINT "OK!"