https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32306
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |WAITING CC| |msebor at gcc dot gnu.org --- Comment #31 from Martin Sebor <msebor at gcc dot gnu.org> --- With GCC 7.0 I don't see much of a difference between the code emitted for the original test case and for the smaller one from comment #19. Can this bug be resolved or am I missing something? For convenience, here are both test cases: #if !ORIGINAL void bar (short *array, short b1, short b2, short b3, short b4, short b5, short b6, short b7, short b8) { array[0] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8; array[1] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8; } #else void bar (short *array, short b1, short b2, short b3, short b4, short b5, short b6, short b7, short b8, short b9, short b10, short b11, short b12) { array[0] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[1] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[2] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[3] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[4] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[5] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[6] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[7] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[8] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[9] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; array[10] = b1 && b2 && b3 && b4 && b5 && b6 && b7 && b8 && b9 && b10 && b11 && b12; } #endif