Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: Notesfiles $Revision: 1.6.2.14 $; site umn-cs.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!stolaf!umn-cs!herndon From: herndon@umn-cs.UUCP Newsgroups: net.lang.c Subject: 4.2 C bugs? Message-ID: <1700001@umn-cs.UUCP> Date: Sat, 2-Mar-85 15:54:00 EST Article-I.D.: umn-cs.1700001 Posted: Sat Mar 2 15:54:00 1985 Date-Received: Mon, 4-Mar-85 08:30:01 EST Lines: 35 Nf-ID: #N:umn-cs:1700001:000:900 Nf-From: umn-cs!herndon Mar 2 14:54:00 1985 Does anyone know of a solution for the following problems? 1) The C compiler (4.2bsd) barfs on the following: void foo() {...} void blort() {...} void (*f[]) () = { foo, /* Operands of = have incompat. types*/ blort, /* Ditto. */ 0 } though it accepts: int foo() {...} int blort() {...} int (*f[])() = { foo, blort, 0 }; This doesn't seem rational to me. If I declare foo and blort in the first example to be integer, then it only gives me warnings. 2) When I try to pass a union as an argument to a function (again, 4.2bsd), the C compiler usually works. Unfortunately, it often doesn't work. It frequently dies with no error message at all, or else a mysterious message to the effect of "Op STASHG missing from op-code table". The unions in question all fit into one word. Are these really bugs, or am I missing something?