r218895 - Diagnose mixed use of '_' and '.' as version

jahanian fjahanian at apple.com
Fri Oct 3 10:32:03 PDT 2014


On Oct 3, 2014, at 12:42 AM, Justin Bogner <mail at justinbogner.com> wrote:

> Fariborz Jahanian <fjahanian at apple.com> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141003/00489c1b/attachment.html>


More information about the cfe-commits mailing list