stage4/generate_c/generate_c.cc
changeset 612 c062ff18d04f
parent 596 4efb11e44065
child 623 3e991e4e1a37
equal deleted inserted replaced
611:8e81d7db54be 612:c062ff18d04f
    51 
    51 
    52 #define STAGE4_ERROR(symbol1, symbol2, ...) {stage4err("while generating C code", symbol1, symbol2, __VA_ARGS__); exit(EXIT_FAILURE);}
    52 #define STAGE4_ERROR(symbol1, symbol2, ...) {stage4err("while generating C code", symbol1, symbol2, __VA_ARGS__); exit(EXIT_FAILURE);}
    53 
    53 
    54 
    54 
    55 /* Macros to access the constant value of each expression (if it exists) from the annotation introduced to the symbol_c object by constant_folding_c in stage3! */
    55 /* Macros to access the constant value of each expression (if it exists) from the annotation introduced to the symbol_c object by constant_folding_c in stage3! */
    56 /* NOTE: The following test is correct in the presence of a NULL pointer, as the logical evaluation will be suspended as soon as the first condition is false! */
    56 #define VALID_CVALUE(dtype, symbol)           (symbol_c::cs_const_value == (symbol)->const_value._##dtype.status)
    57 #define VALID_CVALUE(dtype, symbol)           ((NULL != (symbol)->const_value_##dtype) && (symbol_c::cs_const_value == (symbol)->const_value_##dtype->status))
    57 #define GET_CVALUE(dtype, symbol)             ((symbol)->const_value._##dtype.value) 
    58 #define GET_CVALUE(dtype, symbol)             ((symbol)->const_value_##dtype->value) 
       
    59 
    58 
    60 
    59 
    61 
    60 
    62 /***********************************************************************/
    61 /***********************************************************************/
    63 
    62