<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Oct 3, 2014, at 12:42 AM, Justin Bogner <<a href="mailto:mail@justinbogner.com">mail@justinbogner.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Fariborz Jahanian <<a href="mailto:fjahanian@apple.com">fjahanian@apple.com</a>> writes:<br><blockquote type="cite">Author: fjahanian<br>Date: Thu Oct  2 12:57:26 2014<br>New Revision: 218895<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=218895&view=rev">http://llvm.org/viewvc/llvm-project?rev=218895&view=rev</a><br>Log:<br>Diagnose mixed use of '_' and '.' as version<br>separators in my previous patch. <br><br>Modified:<br>    cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td<br>    cfe/trunk/lib/Parse/ParseDecl.cpp<br>    cfe/trunk/test/SemaObjC/attr-availability-1.m<br><br>Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td<br>URL:<br><a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=218895&r1=218894&r2=218895&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=218895&r1=218894&r2=218895&view=diff</a><br>==============================================================================<br>--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)<br>+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Thu Oct  2 12:57:26 2014<br>@@ -775,6 +775,9 @@ def err_lambda_missing_parens : Error<<br> // Availability attribute<br> def err_expected_version : Error<<br>   "expected a version of the form 'major[.minor[.subminor]]'">;<br>+def warn_expected_consistent_version_separator : Warning<<br>+  "use same version number separators '_' or '.'; as in "<br>+  "'major[.minor[.subminor]]'">, InGroup<Availability>;<br> def err_zero_version : Error<<br>   "version number must have non-zero major, minor, or sub-minor version">;<br> def err_availability_expected_platform : Error<<br><br>Modified: cfe/trunk/lib/Parse/ParseDecl.cpp<br>URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=218895&r1=218894&r2=218895&view=diff<br>==============================================================================<br>--- cfe/trunk/lib/Parse/ParseDecl.cpp (original)<br>+++ cfe/trunk/lib/Parse/ParseDecl.cpp Thu Oct  2 12:57:26 2014<br>@@ -688,7 +688,8 @@ VersionTuple Parser::ParseVersionTuple(S<br>     return VersionTuple(Major);<br>   }<br><br>-  if (!VersionNumberSeparator(ThisTokBegin[AfterMajor])<br>+  const char AfterMajorSeparator = ThisTokBegin[AfterMajor];<br>+  if (!VersionNumberSeparator(AfterMajorSeparator)<br>       || (AfterMajor + 1 == ActualLength)) {<br>     Diag(Tok, diag::err_expected_version);<br>     SkipUntil(tok::comma, tok::r_paren,<br>@@ -716,13 +717,17 @@ VersionTuple Parser::ParseVersionTuple(S<br>     return VersionTuple(Major, Minor);<br>   }<br><br>+  const char AfterMinorSeparator = ThisTokBegin[AfterMinor];<br>   // If what follows is not a '.' or '_', we have a problem.<br>-  if (!VersionNumberSeparator(ThisTokBegin[AfterMinor])) {<br>+  if (!VersionNumberSeparator(AfterMinorSeparator)) {<br></blockquote><br>The comment should probably be updated to reflect that we're looking for<br>the same separator as before.<br></blockquote>I added comment where this rule is checked for. In r<span style="font-family: Menlo; font-size: 11px;">218993.</span></div><div><span style="font-family: Menlo; font-size: 11px;">- Thanks, Fariborz</span></div><div><br></div></body></html>