On Mon, Sep 22, 2014 at 05:10:08PM -0400, Eric Sunshine wrote: > On Mon, Sep 22, 2014 at 1:41 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > > > >> The just-released Apple Xcode 6.0.1 has -Wstring-plus-int enabled by > >> default which complains about pointer arithmetic applied to a string > >> literal: > >> > >> builtin/mailinfo.c:303:24: warning: > >> adding 'long' to a string does not append to the string > >> return !memcmp(SAMPLE + (cp - line), cp, strlen(SAMPLE) ... > >> ~~~~~~~^~~~~~~~~~~~~ > > > > And why is that a warning-worthy violation? > > Not being privy to Apple's decision making process, I can only guess > that it is in response to their new Swift programming language which > they are pushing heavily on iOS (and soon Mac OS X), in which '+' is > the string concatenation operator. For projects written in Swift and > incorporating legacy or portable components in C, C++, or Objective-C, > the warning may help programmer's avoid the pitfall of thinking that > '+' is also concatenation in the C-based languages. That is my reading from the warning text, too, but I have to wonder: wouldn't that mean they should be warning about pointer + pointer, not pointer + int? Also, wouldn't the same advice apply to adding to _any_ char pointer, not just a string literal? I know you don't have answers to those questions, but the whole thing seems rather silly to me. > > Can we have them fix their compiler instead? > > If the above supposition is correct, then it's likely that Apple > considers this a feature, not a bug which needs to be fixed. I don't mind silencing this one warning (even though I find it a little ridiculous). I'm slightly concerned that more brain-damage may be coming our way, but we can deal with that if it ever does. Like Junio, I prefer keeping strlen() rather than switching to sizeof, as it is less error-prone (no need for extra "-1" dance, and it won't silently do the wrong thing if the array is ever converted to a pointer). -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html