Subversion Repositories tendra.SVN

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 7
Line 36... Line 36...
36
#define ASSERT_DEF_H_INCLUDED
36
#define ASSERT_DEF_H_INCLUDED
37
 
37
 
38
/* Assertion function definitions */
38
/* Assertion function definitions */
39
 
39
 
40
#ifndef assert_c_class
40
#ifndef assert_c_class
41
static void assert_c_class
41
static void
42
    PROTO_N ( ( s, fn, ln ) )
42
assert_c_class
43
    PROTO_T ( CONST_S char *s X CONST_S char *fn X int ln )
43
(char *s, char *fn, int ln)
44
{
44
{
45
    ( void ) fprintf ( stderr, "Assertion %s failed, %s, line %d.\n", s, fn, ln ) ;
45
    (void)fprintf(stderr, "Assertion %s failed, %s, line %d.\n", s, fn, ln);
46
    abort () ;
46
    abort();
47
}
47
}
48
#endif
48
#endif
49
 
49
 
50
c_class *check_null_c_class
50
c_class *
51
    PROTO_N ( ( p, fn, ln ) )
51
check_null_c_class
52
    PROTO_T ( c_class *p X CONST_S char *fn X int ln )
52
(c_class *p, char *fn, int ln)
53
{
53
{
54
    if ( p == NULL ) assert_c_class ( "Null pointer", fn, ln ) ;
54
    if (p == NULL) assert_c_class("Null pointer", fn, ln);
55
    return ( p ) ;
55
    return(p);
56
}
56
}
57
 
57
 
58
c_class *check_tag_c_class
58
c_class *
59
    PROTO_N ( ( p, t, fn, ln ) )
59
check_tag_c_class
60
    PROTO_T ( c_class *p X unsigned t X CONST_S char *fn X int ln )
60
(c_class *p, unsigned t, char *fn, int ln)
61
{
61
{
62
    p = check_null_c_class ( p, fn, ln ) ;
62
    p = check_null_c_class(p, fn, ln);
63
    if ( p->ag_tag != t ) assert_c_class ( "Union tag", fn, ln ) ;
63
    if (p->ag_tag != t) assert_c_class("Union tag", fn, ln);
64
    return ( p ) ;
64
    return(p);
65
}
65
}
66
 
66
 
-
 
67
c_class *
67
c_class *check_tag_etc_c_class
68
check_tag_etc_c_class
68
    PROTO_N ( ( p, tl, tb, fn, ln ) )
-
 
69
    PROTO_T ( c_class *p X unsigned tl X unsigned tb X CONST_S char *fn X int ln )
69
(c_class *p, unsigned tl, unsigned tb X char *fn X int ln)
70
{
70
{
71
    p = check_null_c_class ( p, fn, ln ) ;
71
    p = check_null_c_class(p, fn, ln);
72
    if ( p->ag_tag < tl || p->ag_tag >= tb ) {
72
    if (p->ag_tag < tl || p->ag_tag >= tb) {
73
	assert_c_class ( "Union tag", fn, ln ) ;
73
	assert_c_class("Union tag", fn, ln);
74
    }
74
    }
75
    return ( p ) ;
75
    return(p);
76
}
76
}
77
 
77
 
78
#endif
78
#endif