Xref: utzoo comp.lang.pascal:2668 comp.sys.att:8033 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!mit-eddie!snorkelwacker!apple!usc!brutus.cs.uiuc.edu!samsung!aplcen!haven!uvaarpa!hudson!sasha.acc.Virginia.EDU!scl From: scl@sasha.acc.Virginia.EDU (Steve Losen) Newsgroups: comp.lang.pascal,comp.sys.att Subject: uvapc bug fixes Message-ID: <2270@hudson.acc.virginia.edu> Date: 13 Nov 89 16:31:30 GMT Sender: news@hudson.acc.virginia.edu Reply-To: scl@sasha.acc.Virginia.EDU (Steve Losen) Organization: University of Virginia, Charlottesville Lines: 49 While porting uvapc (the Univ. of Virginia Pascal compiler) to some other architectures, we found a few bugs. These are null pointer dereferences, which the AT&T 3b2 and 3b15 do not mind. (If you dereference 0, you quietly get 0). While these are indeed bugs, they do not cause uvapc to produce incorrect results on the 3b2 or 3b15. I have made a new binary distribution of uvapc available via anonymous ftp to virginia.edu in the file uvapc.cpio. Remember, this version only works on the AT&T 3b2 and 3b15. Educational institutions may have a full source distribution if they promise not to redistribute. Contact me for details. For those of you who already have source, here are the diffs. *** p_decl.c.orig Sun Nov 12 11:58:05 1989 --- p_decl.c Sun Nov 12 11:10:17 1989 *************** *** 805,810 **** --- 805,811 ---- OBJECT *dummy; dummy = ob_define(id_noname, OB_FIELD, 0); + dummy->ob_type = std_universal; dummy->ob.field.tag = tag; dummy->ob.field.tagval = tagval; } *** p_stmt.c.orig Sun Nov 12 11:58:10 1989 --- p_stmt.c Sun Nov 12 11:40:08 1989 *************** *** 261,267 **** * Finally, you may not pass a conformant array actual paramter * to a _value_ conformant array formal parameter. */ ! if (fptype->ob_kind == OB_CONFARRAY) { aptype = (fpkind == OB_VALPARM) ? p_expression(&node, stop) : p_var_access(&node, VA_VARPARM, stop); if (ck_conforms (aptype, fptype) && --- 261,267 ---- * Finally, you may not pass a conformant array actual paramter * to a _value_ conformant array formal parameter. */ ! if (fptype && fptype->ob_kind == OB_CONFARRAY) { aptype = (fpkind == OB_VALPARM) ? p_expression(&node, stop) : p_var_access(&node, VA_VARPARM, stop); if (ck_conforms (aptype, fptype) && Steve Losen scl@virginia.edu University of Virginia Academic Computing Center