Ramkumar Ramachandra wrote: > The current code uses a set of file-scope static variables to tell the > cherry-pick/ revert machinery how to replay the changes, and > initializes them by parsing the command-line arguments. In later > steps in this series, we would like to introduce an API function that > calls into this machinery directly and have a way to tell it what to > do. Hence, introduce a structure to group these variables, so that > the API can take them as a single replay_options parameter. The struct leaves out the variable "me". A person might wonder why the above rationale applies to the other variables but not that one. :) > Unfortunately, parsing strategy-option violates a C89 rule: > Initializers cannot refer to variables whose address is not known at > compile time. Reading this, one is led to wonder: - is this a regression? - is it a necessary consequence of the positive change? - will it matter --- i.e., does the rest of git follow that rule to be able to build on old-fashioned compilers, and is there any intention to? - how can I get my compiler to tell me about it? - is it fundamental or not? i.e., is this a "we introduced this minor regression and expect it will be fixed later" or "this points to a flaw in the design and we hope someone comes up with a better design that doesn't have that problem"? By the way, as a side note, here are a couple of patches about the same subject that I use to test with "-std=c89 -pedantic" privately. http://repo.or.cz/w/git/jrn.git/commit/faa4b89731e5411fbdf6812f11748a20e664361d http://repo.or.cz/w/git/jrn.git/commit/92a0c179cb7690bdf6f8fbbfa2253b883d02bd17 -- 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