schwartz@swatsun (Scott Schwartz) (08/06/87)
Here is another bug in ptc (published in comp.sources.unix)
Consider the following program:
program main;
type
trecptr = ^trec;
trec = record
field: integer;
end;
procedure test(var recp: trecptr);
begin
recp^.field := 0;
end;
begin
end.
What gets generated by ptc is:
extern void exit();
typedef int integer;
extern char *strncpy();
typedef struct S59 * trecptr;
typedef struct S59 {
integer field;
} trec;
void
test(recp)
trecptr *recp;
{
recp->->field = 0; /* GAAAK !!! */
}
main()
{
exit(0);
}
The bug seems to be in the handling of pointers to records passed as
var parameters. Time to go dig into the source :-(
--
# Scott Schwartz
# ...{{seismo,ihnp4}!bpa,cbmvax!vu-vlsi,sun!liberty}!swatsun!!pyra:09