Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!seismo!ll-xn!cit-vax!tybalt.caltech.edu!ssnyder From: ssnyder@tybalt.caltech.edu (Scott S. Snyder) Newsgroups: comp.sys.ibm.pc Subject: YA TC bug Message-ID: <3662@cit-vax.Caltech.Edu> Date: Mon, 17-Aug-87 12:20:59 EDT Article-I.D.: cit-vax.3662 Posted: Mon Aug 17 12:20:59 1987 Date-Received: Tue, 18-Aug-87 04:53:03 EDT Sender: news@cit-vax.Caltech.Edu Reply-To: ssnyder@tybalt.caltech.edu.UUCP (Scott S. Snyder) Distribution: world Organization: California Institute of Technology Lines: 29 TC seems to have a bug with bitfields. This program: foo(z) struct {int a; int b:1;} *z; { z->a = z->b = 1; } produces the following code when compiled with the large memory model: _foo proc far push bp mov bp,sp les bx,dword ptr [bp+6] and word ptr es:[bx+2],-2 or word ptr es:[bx+2],1 mov ax,1 push es ; NO CORRESPONDING POPs!!! push bx les bx,dword ptr [bp+6] mov word ptr es:[bx],ax @1: pop bp ret _foo endp