[cfe-commits] [Patch] -Wduplicate-enum which fixes PR6343

Sean Silva silvas at purdue.edu
Wed Jul 18 18:16:13 PDT 2012


Why not just keep a set containing all previously seen values? Then
you can find duplicates with a linear scan.

--Sean Silva

On Wed, Jul 18, 2012 at 6:11 PM, Richard Trieu <rtrieu at google.com> wrote:
> On Wed, Jul 18, 2012 at 5:41 PM, Ted Kremenek <kremenek at apple.com> wrote:
>>
>> Hi Richard,
>>
>> I think this checking is quadratic, n(n+1)/2.
>
> Yes it is.  It does perform a check between each enum in the worst case.
>
>>
>>  This might be fairly expensive on a large set of enums.  Do you have any
>> performance numbers?
>
> I haven't run any performance tests.  I will try running some when I get the
> chance.
>
>>
>>  I agree that it is a good checking, but the way it is implemented is
>> likely to be noticeably slow on some (important) cases.
>
> How many elements in an enum would be in these important cases?
>>
>>
>> Ted
>>
>> On Jul 18, 2012, at 4:46 PM, Richard Trieu <rtrieu at google.com> wrote:
>>
>> http://llvm.org/bugs/show_bug.cgi?id=6343
>>
>> Warn on enum elements that are assigned values already in use.  This is
>> based on the misconception that elements not given a value will be given the
>> next smallest, unused value.  Instead, elements are assigned 1 more than the
>> previous value.  Some example code this warning will catch:
>>
>> enum { A, B, C, Aref = A, count };
>> Both B and count will have value 1.
>>
>> enum { A, B, C, D = -1, E, F };
>> A = E = 0
>> B = F = 1
>>
>> This warning found one such issue in LLVM that was fixed in r160465.
>> <duplicate-enum.patch>_______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>



More information about the cfe-commits mailing list