[PATCH] Bugs in SemaOverload.cpp
Alp Toker
alp at nuanti.com
Tue Jul 1 12:33:39 PDT 2014
On 01/07/2014 22:00, Alp Toker wrote:
> Hi Dmitry,
>
> I agree the current setup isn't ideal.
>
> An alternative to your approach is to convert this into an X macro
> table (or just a big rectangular array perhaps). Something like:
>
> ImplicitConversions.def:
>
> IC(Kind, Name, Category, Rank):
> IC(Identity, "No conversion", Identity, Exact_Match)
> IC(Lvalue_To_Rvalue, "Lvalue-to-rvalue", Lvalue_Transformation,
> Exact_Match)
> ...
>
In other words, that'd be similar to what we already do for overloaded
operators:
include/clang/Basic/OperatorKinds.def
Alp.
>
> (We've made this change in our clang derivative, which implements
> several new conversion kinds, and the above format is serving us well
> because it also acts as documentation for the language extension,
> making it easy to see the ranks at a glance.)
>
> What do you think?
>
> Alp.
>
>
> On 01/07/2014 14:56, Dmitry Babokin wrote:
>> Hi rsmith,
>>
>> I've noticed that GetConversionCategory(), GetConversionRank() and
>> GetImplicitConversionName() from lib/Sema/SemaOverload.cpp have a
>> bunch of bugs, namely:
>> - GetConversionCategory() is missing cases for
>> ICK_TransparentUnionConversion, ICK_Writeback_Conversion and
>> ICK_Zero_Event_Conversion cases (ok to not handle
>> ICK_Num_Conversion_Kinds, though would be good to report an error);
>> - GetConversionRank() is missing the case for
>> ICK_Zero_Event_Conversion;
>> - GetImplicitConversionName() doesn't have a comma after
>> "Transparent Union Conversion";
>>
>> I think it's better to rewrite these functions using switch, so
>> adding new ICKs would trigger a warning or an error if it's not
>> handled in these functions.
>>
>> Except style changes and typo fix (missing comma), the changes add
>> case for missing records, please verify that they've got correct values.
>>
>> I have no commit rights, so I would appreciate if reviewer commits
>> the patch. Thanks!
>>
>> http://reviews.llvm.org/D4354
>>
>> Files:
>> lib/Sema/SemaOverload.cpp
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
--
http://www.nuanti.com
the browser experts
More information about the cfe-commits
mailing list