On Oct 3, 2014, at 12:42 AM, Justin Bogner <[email protected]> wrote:
> Fariborz Jahanian <[email protected]> writes: >> Author: fjahanian >> Date: Thu Oct 2 12:57:26 2014 >> New Revision: 218895 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=218895&view=rev >> Log: >> Diagnose mixed use of '_' and '.' as version >> separators in my previous patch. >> >> Modified: >> cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td >> cfe/trunk/lib/Parse/ParseDecl.cpp >> cfe/trunk/test/SemaObjC/attr-availability-1.m >> >> Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=218895&r1=218894&r2=218895&view=diff >> ============================================================================== >> --- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original) >> +++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Thu Oct 2 >> 12:57:26 2014 >> @@ -775,6 +775,9 @@ def err_lambda_missing_parens : Error< >> // Availability attribute >> def err_expected_version : Error< >> "expected a version of the form 'major[.minor[.subminor]]'">; >> +def warn_expected_consistent_version_separator : Warning< >> + "use same version number separators '_' or '.'; as in " >> + "'major[.minor[.subminor]]'">, InGroup<Availability>; >> def err_zero_version : Error< >> "version number must have non-zero major, minor, or sub-minor version">; >> def err_availability_expected_platform : Error< >> >> Modified: cfe/trunk/lib/Parse/ParseDecl.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=218895&r1=218894&r2=218895&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Parse/ParseDecl.cpp (original) >> +++ cfe/trunk/lib/Parse/ParseDecl.cpp Thu Oct 2 12:57:26 2014 >> @@ -688,7 +688,8 @@ VersionTuple Parser::ParseVersionTuple(S >> return VersionTuple(Major); >> } >> >> - if (!VersionNumberSeparator(ThisTokBegin[AfterMajor]) >> + const char AfterMajorSeparator = ThisTokBegin[AfterMajor]; >> + if (!VersionNumberSeparator(AfterMajorSeparator) >> || (AfterMajor + 1 == ActualLength)) { >> Diag(Tok, diag::err_expected_version); >> SkipUntil(tok::comma, tok::r_paren, >> @@ -716,13 +717,17 @@ VersionTuple Parser::ParseVersionTuple(S >> return VersionTuple(Major, Minor); >> } >> >> + const char AfterMinorSeparator = ThisTokBegin[AfterMinor]; >> // If what follows is not a '.' or '_', we have a problem. >> - if (!VersionNumberSeparator(ThisTokBegin[AfterMinor])) { >> + if (!VersionNumberSeparator(AfterMinorSeparator)) { > > The comment should probably be updated to reflect that we're looking for > the same separator as before. I added comment where this rule is checked for. In r218993. - Thanks, Fariborz
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
