Path: utzoo!attcan!uunet!samsung!sdd.hp.com!uakari.primate.wisc.edu!aplcen!haven!udel!mmdf From: archer%segin4.segin.fr@prime.com (Vincent Archer) Newsgroups: comp.os.minix Subject: Problems with C68 Message-ID: <21058@nigel.udel.EDU> Date: 5 Jun 90 07:06:28 GMT Sender: usenet@udel.EDU Lines: 28 I've found C68 to be very useful... But I've also found that it's not reliable :-( Try compiling the lib/ansi/strcpy.c; the construction: while ((*dest++ = *src++) != 0) continue; is compiled as: _0: move.l a2,a0 add.l #1,a2 move.b (a3)+,(a0) tst.b (a3)+ <==== Uh? A second increment bne _0 Aside from the optimisation problem of dst++, there's a problem in the reduction of the expression (a=b)op => (a=b),(b op), which is safe as long as b is safe to evaluate more than once. No wonder you get 1018 dhrystones/sec. that way! :-) I lack the time to fix it, so, CvW, you're notified of the problem... Vincent Vincent Archer | Email:archer%segin4.segin.fr@prime.com "People that are good at finding excuses are never good at anything else"