Path: utzoo!attcan!utgpu!utstat!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!usc!samsung!aplcen!haven!uvaarpa!mcnc!rti!sas!walker From: walker@sas.UUCP (Doug Walker) Newsgroups: comp.sys.amiga.tech Subject: Re: Lattice 5.04 prototyping broken? Keywords: Lattice C, 5.04, prototyping, bug Message-ID: <1301@sas.UUCP> Date: 2 Nov 89 21:46:31 GMT References: Reply-To: walker@sas.UUCP (Doug Walker) Distribution: comp Organization: SAS Institute Inc, Cary NC Lines: 49 In article evan@cs.mu.oz.au writes: > >Has anyone managed to get the prototyping options (-pr) to the 5.04 >version of lc1b to work? > -pr is horribly broken in 5.04 due to some last-minute 'fixes'. (Actually, we just wanted to demonstrate a SnapShot GURU...) It's really too bad, because there are lots of good fixes to the -pr stuff that now can't be used due to one stupid little problem. For now, please use the lc1b from 5.02 to get around the problem. Apologies all around (sigh). While I'm on the subject, there is a bug in the new -cq option reported on BIX: If you have struct FOO { struct BAR bar; ..other stuff.. }; struct FARKLE { struct FOO foo; ...other stuff.. }; void foo(struct FOO *); -cq is SUPPOSED to allow you to pass a struct FARKLE * to foo() without complaining about the prototype mismatch. Unfortunately, there is a bug when the first element of the common structure (FOO) is itself a structure; in this case, the comparison still fails. This happens if you try to substitute an IntuiMessage structure for a Message structure, which of course was one of the major reasons for implementing -cq. The other major reason was to be able to accept IoSerRequest's and other IO request blocks when the prototype says IoStdReq; this does still work, since the first element of an IoSerReq (and other like it) is not actually an IoStdReq structure but rather matches an IoStdReq structure field for field. So -cq does provide some benefit. Sorry for the problems. Please report any additional problems you find to Lattice tech support at 312-916-1100 (FAX 312-916-1190) so they can be fixed in a future update.