https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104680
--- Comment #4 from David Malcolm <dmalcolm at gcc dot gnu.org> --- > trunk.git/gcc/d/expr.cc:689:17: warning: Identical inner 'if' condition is > always true. [identicalInnerCondition] In 'void visit (CatExp *e)': 682 │ if (e->e1->op == EXP::concatenate) 683 │ { 684 │ /* Flatten multiple concatenations to an array. 685 │ So the expression ((a ~ b) ~ c) becomes [a, b, c] */ 686 │ int ndims = 2; 687 │ 688 │ for (Expression *ex = e->e1; ex->op == EXP::concatenate;) 689 │ { 690 │ if (ex->op == EXP::concatenate) 691 │ { 692 │ ex = ex->isCatExp ()->e1; 693 │ ndims++; 694 │ } 695 │ } Looks like the ex->op == EXP::concatenate in line 690 is indeed checked by the loop guard at line 688, so this code does look suspicious to me.