Path: utzoo!attcan!uunet!cs.utexas.edu!asuvax!ncar!tank!gargoyle!ddsw1!olsa99!zeusa!hendrik From: hendrik@zeusa.UUCP (Hendrik Vermooten) Newsgroups: comp.lang.c Subject: DEFINITE bug in Turbo C 2.0 Message-ID: <802@zeusa.UUCP> Date: 22 Mar 90 07:21:31 GMT Organization: ZEUS software, Verwoerdburg Lines: 40 Here is a definite bug in C (discovered by Renier v. Wyk) (Please, no speeches about not using ++a etc in a macro :-) I've never done it, and never plan to do it. Interesting bug, nonetheless) #include #define SQR(a) a*a main () { int a = 10, b = 10, x, y; x = SQR (++a); y = SQR (b++); printf ("%d\n", x); printf ("%d\n", y); a = 10; b = 10; printf ("%d\n", SQR (++a)); printf ("%d\n", SQR (b++)); } Run by Turbo C it gives: 144 100 132 110 And run by Microsoft C (under XENIX): 132 110 132 110 *** *** Hendrik Vermooten, ZEUS software * o o * Bang: ..!uunet!ddsw1!olsa99!zeusa!hendrik O| I |O or hendrik@zeusa.UUCP | *** | \*****/