date_core testing address not value of variable on stack
|ruby -v:||ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-darwin12.3.0]||Backport:||1.9.3: UNKNOWN, 2.0.0: UNKNOWN|
This line appears ten times in date_core.c:
decode_year(y, ns ? -1 : +1, &nth2, ry);
The type of ns is int*, and it seems to always be populated with the address of a stack variable, with the effect that the condition is always true. It looks like the intent is to ensure that decode_year uses Gregorian years if the value ns is true, i.e.:
decode_year(y, *ns ? -1 : +1, &nth2, ry);
It may be the case that this code is unreachable: guess_style() would have to return zero and nth would have to be calculated to be greater or less than zero. Is there any way that could happen?