> On Aug 26, 2015, at 4:50 PM, Ben Pfaff <b...@nicira.com> wrote: > > GCC 4.9 doesn't like flowmap_clear() and flowmap_set(). Maybe that's > why you had those seemingly redundant tests in there? I'm taking a > closer look to see whether I believe its claims though. > > CC lib/classifier.lo > In file included from ../lib/match.h:20:0, > from ../lib/classifier.h:302, > from ../lib/classifier.c:18: > ../lib/classifier.c: In function 'miniflow_get_map_in_range': > ../lib/flow.h:520:28: error: array subscript is above array bounds > [-Werror=array-bounds] > fm->bits[unit + 1] &= ~(n_bits_mask >> (MAP_T_BITS - idx)); > ^ > ../lib/flow.h:520:28: error: array subscript is above array bounds > [-Werror=array-bounds] > cc1: all warnings being treated as errors > Makefile:3910: recipe for target 'lib/classifier.lo' failed > make[2]: *** [lib/classifier.lo] Error 1 > CC lib/flow.lo > In file included from ../lib/flow.c:18:0: > ../lib/flow.c: In function 'miniflow_extract': > ../lib/flow.h:502:28: error: array subscript is above array bounds > [-Werror=array-bounds] > fm->bits[unit + 1] |= n_bits_mask >> (MAP_T_BITS - idx); > ^ > ../lib/flow.h:502:28: error: array subscript is above array bounds > [-Werror=array-bounds] > cc1: all warnings being treated as errors
This rings a bell, and today I was compiling with clang only, so I did not see them. Maybe we introduce the tests back with a comment stating the reason we have them. They will be removed by the compiler anyway, as both relevant arguments (‘idx’ and ’n_bits’) are compile-time constants. Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev