Subject: Re: sanity checking arguments to library functions...
To: Brian C. Grayson <firstname.lastname@example.org>
From: Simon Burge <email@example.com>
Date: 04/17/1999 21:17:39
"Brian C. Grayson" wrote:
> On Fri, Apr 16, 1999 at 10:53:29AM -0700, Ross Harvey wrote:
> > If the thing works by using gcc builtins like:
> > __builtin_return_address(frameno)
> > Well...actually...that doesn't work on "any gcc/egcs-compiled program"
> > because the builtin isn't implemented on all architectures. (And, for
> > those that it isn't implemented for, I don't think it errors out, so
> > you just get a run-time exception.)
> Do you know which NetBSD archs will choke? It looks like it
> won't work on mips.
Seems ok on both Ultrix/MIPS and NetBSD/pmax. This on NetBSD/pmax:
mona:~ 56> cat > fofo.c
printf("__builtin_return_address(0): 0x%08x\n", __builtin_return_address(0));
printf("__builtin_frame_address(0): 0x%08x\n", __builtin_frame_address(0));
printf("__builtin_return_address(1): 0x%08x\n", __builtin_return_address(1)); /* line 10 */
printf("__builtin_frame_address(1): 0x%08x\n", __builtin_frame_address(1));
mona:~ 57> cc -o fofo fofo.c
fofo.c: In function `foo':
fofo.c:10: warning: unsupported arg to `__builtin_return_address'
mona:~ 58> ./fofo