On Mon, Jul 31, 2017 at 6:17 PM, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote: > On Mon, 2017-07-31 at 18:04 +0200, Arnd Bergmann wrote: >> On Mon, Jul 31, 2017 at 5:32 PM, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote: >> > So inetaddr_event() assigns AF_INET so .sin_family and gcc warns about code >> > that is only executed if .sin_family == AF_INET6? Since this warning is the >> > result of incorrect interprocedural analysis by gcc, shouldn't this be >> > reported as a bug to the gcc authors? >> >> I think the interprocedural analysis here is just a little worse than it could >> be, but it's not actually correct. It's not gcc that prints the warning (if >> it did, then I'd agree it would be a gcc bug) but the warning is triggered >> intentionally by the fortified version of memcpy in include/linux/string.h. >> >> The problem as I understand it is that gcc cannot guarantee that it >> tracks the value of addr->sa_family at least as far as the size of the >> stack object, and it has no strict reason to do so, so the inlined >> rdma_ip2gid() will still contain both cases. > > Hello Arnd, > > Had you already considered to uninline the rdma_ip2gid() function? Not really, that would prevent the normal optimization from happening, so that would be worse than uninlining addr_event() as I tried. It would of course get rid of the warning, so if you think that's a better solution, I won't complain. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html