pc@ukc.ac.uk (R.P.A.Collinson) (12/30/86)
On the whole MWC implements structure assignment correctly. However I have found that an attempt to pass the result of a function returning a structure into a routine as a parameter fails. Perhaps a little example will make this clearer. typedef struct { short x; short y; } Point; main() { Point pt; Point Pt(); pt = Pt(100, 200) print_pt(pt); /* works */ print_pt(Pt(100, 200)); /* fails */ } Point Pt(x, y) short x, y; { Point re; re.x = x; re.y = y; return(re); } print_pt(pt) Point pt; { printf("x = %d, y %d\n", pt.x, pt.y); } In the fail case, a pointer to a static(?) area gets passed into the code and is not dealt with correctly. I guess this is a case of `me need compiler fix' unless someone else has a fix? This bug means that I cannot port a whole bunch of code using Points and Rectangles using MWC. PS. I am annoyed that I always seem to act as an unpaid compiler debugger for the various commercial C compilers around.