return NULL;
switch(info->operands) {
- case 3: if(!c) return NULL;
- case 2: if(!b) return NULL;
+ case 3:
+ if (!c)
+ return NULL;
+ GMQCC_FALLTHROUGH;
+ case 2:
+ if (!b)
+ return NULL;
+ GMQCC_FALLTHROUGH;
case 1:
if(!a) {
compile_error(fold_ctx(fold), "internal error: fold_op no operands to fold\n");
case INSTR_DIV_F:
if (swapped)
return NULL;
+ GMQCC_FALLTHROUGH;
case INSTR_MUL_F:
if (fold_immvalue_float(load) == 1.0f) {
++opts_optimizationcount[OPTIM_PEEPHOLE];
#if defined(__GNUC__) || defined(__CLANG__)
# define GMQCC_WARN __attribute__((warn_unused_result))
# define GMQCC_USED __attribute__((used))
+# if __GNUC__ >= 7
+# define GMQCC_FALLTHROUGH __attribute__((fallthrough))
+# else
+# define GMQCC_FALLTHROUGH
+# endif
# define GMQCC_FUNCTION __func__
#else
# define GMQCC_WARN
case opid2('|','|'):
generated_op += 1; /* INSTR_OR */
+ GMQCC_FALLTHROUGH;
case opid2('&','&'):
generated_op += INSTR_AND;
if (!(out = fold_op(parser->fold, op, exprs))) {
case opid1('>'):
generated_op += 1; /* INSTR_GT */
+ GMQCC_FALLTHROUGH;
case opid1('<'):
generated_op += 1; /* INSTR_LT */
+ GMQCC_FALLTHROUGH;
case opid2('>', '='):
generated_op += 1; /* INSTR_GE */
+ GMQCC_FALLTHROUGH;
case opid2('<', '='):
generated_op += INSTR_LE;
if (NotSameType(TYPE_FLOAT)) {
switch (len & 3) {
case 3:
k ^= tail[2] << 16;
+ GMQCC_FALLTHROUGH;
case 2:
k ^= tail[1] << 8;
+ GMQCC_FALLTHROUGH;
case 1:
k ^= tail[0];
k *= mask1;