On 3/10/20 5:20 PM, Jes Sorensen wrote: > On 3/10/20 6:13 PM, Gustavo A. R. Silva wrote: >> >> >> On 3/10/20 5:07 PM, Jes Sorensen wrote: >>> As I stated in my previous answer, this seems more code churn than an >>> actual fix. If this is a real problem, shouldn't the work be put into >>> fixing the compiler to handle foo[0] instead? It seems that is where the >>> real value would be. >> >> Yeah. But, unfortunately, I'm not a compiler guy, so I'm not able to fix the >> compiler as you suggest. And I honestly don't see what is so annoying/disturbing >> about applying a patch that removes the 0 from foo[0] when it brings benefit >> to the whole codebase. > > My point is that it adds what seems like unnecessary churn, which is not > a benefit, and it doesn't improve the generated code. > As an example of one of the benefits of this is that the compiler won't trigger a warning in the following case: struct boo { int stuff; struct foo array[0]; int morestuff; }; The result of the code above is an undefined behavior. On the other hand in the case below, the compiles does trigger a warning: struct boo { int stuff; struct foo array[]; int morestuff; }; See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=76497732932f15e7323dc805e8ea8dc11bb587cf Thanks -- Gustavo