From 869f8726a6257eddae30c99b21d88e2302e970d2 Mon Sep 17 00:00:00 2001 From: Stephen Heumann Date: Tue, 24 Aug 2021 18:21:39 -0500 Subject: [PATCH] Add __assert2 function to include the function name when reporting assertion failures. This is required by C99 and later. The old __assert function is retained for compatibility with existing object code. --- assert.asm | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/assert.asm b/assert.asm index 4bb73f4..5264423 100644 --- a/assert.asm +++ b/assert.asm @@ -22,11 +22,12 @@ Assert start dummy routine **************************************************************** * -* void __assert (char *f, int l) +* void __assert (char *f, unsigned l, char *s) * * Inputs: * f - pointer to the file name * l - line number +* s - assertion string * **************************************************************** * @@ -44,5 +45,35 @@ __assert start creturn -msg dc c'Assertion failed: file %s, line %d; assertion: %s',i1'10,0' +msg dc c'Assertion failed: file %s, line %u; assertion: %s',i1'10,0' + end + +**************************************************************** +* +* void __assert2 (char *f, unsigned l, char *fn, char *s) +* +* Inputs: +* f - pointer to the file name +* l - line number +* fn - function name +* s - assertion string +* +**************************************************************** +* +__assert2 start + + csubroutine (4:f,2:l,4:fn,4:s),0 + + ph4 stderr + jsl fprintf + jsl abort + + creturn + +msg dc c'Assertion failed: file %s, line %u, function %s; assertion: %s',i1'10,0' end