equal
deleted
inserted
replaced
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 |