pike.git / src / encode.c

version» Context lines:

pike.git/src/encode.c:2436:    "%td (expected multiple of 3).\n", bytecode->len);    }       init_bytecode();       SET_ONERROR(err, exit_bytecode, NULL);       switch(bytecode->size_shift) {   #define SIGNED_CHAR(X) X    + #if SIZEOF_INT_TYPE > 4 + #define DO_HIGH(X) (X) + #else + #define DO_HIGH(X) 0 + #endif +     /* The EMIT_BYTECODE2 macro will generate the warning    * "comparison is always false due to limited range of data type"    * if used on STR0. Thus, the need to have two macros here.    */   #define EMIT_BYTECODE2(STR) \    if (STR(bytecode)[e] == F_FILENAME) { \    INT32 strno = STR(bytecode)[e+1]; \    if (SIGNED_CHAR(strno < 0) || \    (strno >= p->num_strings)) { \    decode_error(data, NULL, "Bad filename directive number:" \    " %d (expected 0 - %d).\n", \    strno, p->num_strings); \    } \    current_file = p->strings[strno]; \    } else if (STR(bytecode)[e] == F_LINE) { \    current_line = \    ((unsigned INT32)STR(bytecode)[e+1]) | \ -  ((INT_TYPE)STR(bytecode)[e+2])<<32; \ +  DO_HIGH(((INT_TYPE)STR(bytecode)[e+2])<<32); \    } else if (!current_file) { \    decode_error(data, NULL, "Missing filename directive in " \    "byte code.\n"); \    } else if (!current_line) { \    decode_error(data, NULL, "Missing line directive in " \    "byte code.\n"); \    } else      #define EMIT_BYTECODE(STR, X) do { \    for (e = 0; e < bytecode->len; e += 3) { \