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.
This commit is contained in:
Stephen Heumann 2021-08-24 18:21:39 -05:00
parent 690ee7137f
commit 869f8726a6
1 changed files with 33 additions and 2 deletions

View File

@ -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 <s
ph4 <fn
ph2 <l
ph4 <f
ph4 #msg
ph4 >stderr
jsl fprintf
jsl abort
creturn
msg dc c'Assertion failed: file %s, line %u, function %s; assertion: %s',i1'10,0'
end