Changeset 29 in svn for trunk


Ignore:
Timestamp:
2006-05-26T04:31:45+02:00 (9 years ago)
Author:
Xuefer
Message:

outputs info about how autocheck is built

Location:
trunk/processor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/head.m4

    r4 r29  
    3030#undef NDEBUG
    3131#include <assert.h>
    32 include(builddir`/structinfo.m4')
     32m4_errprint(`AUTOCHECK INFO: runtime autocheck Enabled (debug build)')
     33', `
     34m4_errprint(`AUTOCHECK INFO: runtime autocheck Disabled (optimized build)')
    3335')
     36sinclude(builddir`/structinfo.m4')
     37
    3438#ifndef NDEBUG
    3539#   undef inline
  • trunk/processor/struct.m4

    r11 r29  
    2929DECL_STRUCT_P_FUNC(`$1', `$2', 1)
    3030    {
     31        pushdef(`ELEMENTS_DONE')
     32        ifdef(`SIZEOF_$1', , `m4_errprint(`AUTOCHECK WARN: $1: missing structinfo, dont panic')define(`SIZEOF_$1', 0)')
    3133        IFASSERT(`
    3234            /* {{{ init assert */
    3335            ifdef(`SIZEOF_$1', , `m4_errprint(`missing SIZEOF_$1, safe to ignore')define(`SIZEOF_$1', 0)')
    3436            ifdef(`COUNTOF_$1', , `m4_errprint(`missing COUNTOF_$1, safe to ignore')define(`COUNTOF_$1', 0)')
     37            dnl SIZEOF_x COUNTOF_x can be both defined or both not
     38            ifdef(`SIZEOF_$1', `
     39                ifdef(`COUNTOF_$1', , `m4_errprint(`AUTOCHECK WARN: missing COUNTOF_$1')')
     40            ', `
     41                define(`SIZEOF_$1', 0)
     42            ')
     43            ifdef(`COUNTOF_$1', `
     44                ifdef(`SIZEOF_$1', , `m4_errprint(`AUTOCHECK WARN: missing SIZEOF_$1')')
     45            ', `
     46                define(`COUNTOF_$1', 0)
     47            ')
    3548            int assert_size = SIZEOF_$1, assert_count = COUNTOF_$1;
    3649            int done_size = 0, done_count = 0;
    37             pushdef(`ELEMENTS_DONE')
    3850            /* }}} */
    3951            IFRESTORE(`assert(xc_is_shm(src));')
     
    5668            INDENT()fprintf(stderr, "}\n");
    5769        ')
    58         ifdef(`SKIPASSERT_ONCE', `undefine(`SKIPASSERT_ONCE')', `IFASSERT(`
     70        ifdef(`SKIPASSERT_ONCE', `undefine(`SKIPASSERT_ONCE')', `
     71            IFASSERT(`
    5972                /* {{{ check assert */
    6073                if (done_count != assert_count) {
     
    7487                    abort();
    7588                }
    76                 ifdef(`ELEMENTSOF_$1', `
    77                     pushdef(`ELEMENTS_UNDONE', LIST_DIFF(defn(`ELEMENTSOF_$1'), defn(`ELEMENTS_DONE')))
    78                     ifelse(defn(`ELEMENTS_UNDONE'), , , `
    79                         m4_errprint(`====' KIND `$1 =================')
    80                         m4_errprint(`expected:' defn(`ELEMENTSOF_$1'))
    81                         m4_errprint(`missing :' defn(`ELEMENTS_UNDONE'))
    82                         define(`EXIT_PENDING', 1)
    83                     ')
    84                     popdef(`ELEMENTS_UNDONE')
     89                /* }}} */
     90            ')
     91            ifdef(`ELEMENTSOF_$1', `
     92                pushdef(`ELEMENTS_UNDONE', LIST_DIFF(defn(`ELEMENTSOF_$1'), defn(`ELEMENTS_DONE')))
     93                ifelse(defn(`ELEMENTS_UNDONE'), , `m4_errprint(`AUTOCHECK INFO: $1: processor looks good')', `
     94                    m4_errprint(`AUTOCHECK ERROR: ====' KIND `$1 =================')
     95                    m4_errprint(`AUTOCHECK expected:' defn(`ELEMENTSOF_$1'))
     96                    m4_errprint(`AUTOCHECK missing :' defn(`ELEMENTS_UNDONE'))
     97                    define(`EXIT_PENDING', 1)
    8598                ')
    86                 /* }}} */
    87         ')')
     99                popdef(`ELEMENTS_UNDONE')
     100            ')
     101        ')
    88102        ifdef(`USEMEMCPY', `IFCOPY(`
    89103            } while (0);
     
    91105        IFASSERT(`
    92106            } while (0);
    93             undefine(`ELEMENTS_DONE')
    94         ')
     107        ')
     108        popdef(`ELEMENTS_DONE')
    95109    }
    96110/* }`}'} */
Note: See TracChangeset for help on using the changeset viewer.