mirror of
https://github.com/byteworksinc/ORCALib.git
synced 2026-10-22 07:02:20 +00:00
The ORCA/C compiler was updated to support 32-bit line numbers some time ago (as required by C99 and later), so assert should support them as well. The code to return from any of the assert calls is also removed, since it was unreachable.
104 lines
2.3 KiB
NASM
104 lines
2.3 KiB
NASM
keep obj/assert
|
|
mcopy assert.macros
|
|
case on
|
|
****************************************************************
|
|
*
|
|
* Assert - Condition assertion macro
|
|
*
|
|
* This code implements the subroutines needed to support the
|
|
* standard C library assert.
|
|
*
|
|
* October 1991
|
|
* Mike Westerfield
|
|
*
|
|
* Copyright 1991
|
|
* Byte Works, Inc.
|
|
*
|
|
****************************************************************
|
|
*
|
|
Assert start dummy routine
|
|
|
|
end
|
|
|
|
****************************************************************
|
|
*
|
|
* void __assert (char *f, unsigned l, char *s)
|
|
*
|
|
* Inputs:
|
|
* f - pointer to the file name
|
|
* l - line number
|
|
* s - assertion string
|
|
*
|
|
****************************************************************
|
|
*
|
|
__assert start
|
|
|
|
csubroutine (4:f,2:l,4:s),0
|
|
|
|
ph4 <s
|
|
ph2 <l
|
|
ph4 <f
|
|
ph4 #msg
|
|
ph4 >stderr
|
|
jsl fprintf
|
|
jsl abort
|
|
|
|
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
|
|
|
|
msg dc c'Assertion failed: file %s, line %u, function %s; assertion: %s',i1'10,0'
|
|
end
|
|
|
|
****************************************************************
|
|
*
|
|
* void __assert3 (char *f, unsigned long l, char *fn, char *s)
|
|
*
|
|
* Inputs:
|
|
* f - pointer to the file name
|
|
* l - line number
|
|
* fn - function name
|
|
* s - assertion string
|
|
*
|
|
****************************************************************
|
|
*
|
|
__assert3 start
|
|
|
|
csubroutine (4:f,4:l,4:fn,4:s),0
|
|
|
|
ph4 <s
|
|
ph4 <fn
|
|
ph4 <l
|
|
ph4 <f
|
|
ph4 #msg
|
|
ph4 >stderr
|
|
jsl fprintf
|
|
jsl abort
|
|
|
|
msg dc c'Assertion failed: file %s, line %lu, function %s; assertion: %s',i1'10,0'
|
|
end
|