From mboxrd@z Thu Jan 1 00:00:00 1970 From: Per Bothner To: Colin McCormack Cc: egcs@cygnus.com Subject: Re: Code Generation Date: Sun, 31 Jan 1999 23:58:00 -0000 Message-id: <199901020732.XAA13930@cygnus.com> References: <368DC2F3.196695EA@field.medicine.adelaide.edu.au> X-SW-Source: 1999-01n/msg00024.html > Anyway, Purify for free as a side-effect of egcs would be very sweet. Careful. Purify has restrive (and enforced) patents. What we need is array bounds checking - without using the purify parented techniques. The Checker implementation does not I believe violate any patents. However, I don't think it is the right approach. It uses "fat pointers" (i.e. each pointer is represented by a two- or three-word set of pointers). This breaks binary compatibility, which makes it very inconvenient. A better approach uses "thin" (normal) pointers in function parameters, results, globals, and structure fields, but uses "fat" pointers *internally* in a function. Thin pointers are coerced to fat pointers as needed by looking them up in a run-time table. This is not a efficient or clean or simple as fat pointers, but it preserves binary compatibility, without which Checker is little more than a toy. If someone want to work on an improved binary-compatible Checker, I have some ideas. I'd be happy in sharing these ideas - if there actually is a chance someone might actually take on such a project. (Probabaly quite of bit of the Checker code can be re-used, or will at least help identify the code that needs to be changed.) --Per Bothner Cygnus Solutions bothner@cygnus.com http://www.cygnus.com/~bothner