From 17ee7790ebfac94e22da60c8d4618acb90b11bbf Mon Sep 17 00:00:00 2001 From: zack Date: Tue, 13 Jan 2004 02:43:16 +0000 Subject: * varray.h (VARRAY_POP): Add checking variant, aborts on underflow. (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked. * varray.c: No need to prototype error. (varray_check_failed): Wrap long string onto two lines. (varray_underflow): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75786 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/varray.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'gcc/varray.c') diff --git a/gcc/varray.c b/gcc/varray.c index aca4b6bccf4..b748d438e9a 100644 --- a/gcc/varray.c +++ b/gcc/varray.c @@ -118,15 +118,22 @@ varray_clear (varray_type va) #if defined ENABLE_CHECKING && (GCC_VERSION >= 2007) -extern void error (const char *, ...) ATTRIBUTE_PRINTF_1; - void varray_check_failed (varray_type va, size_t n, const char *file, int line, const char *function) { - internal_error ("virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d", + internal_error ("virtual array %s[%lu]: element %lu out of bounds " + "in %s, at %s:%d", va->name, (unsigned long) va->num_elements, (unsigned long) n, function, trim_filename (file), line); } +void +varray_underflow (varray_type va, const char *file, int line, + const char *function) +{ + internal_error ("underflowed virtual array %s in %s, at %s:%d", + va->name, function, trim_filename (file), line); +} + #endif -- cgit v1.2.1