<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Richard,<div><br></div><div>I think this checking is quadratic, n(n+1)/2.  This might be fairly expensive on a large set of enums.  Do you have any performance numbers?  I agree that it is a good checking, but the way it is implemented is likely to be noticeably slow on some (important) cases.</div><div><br></div><div>Ted</div><div><br><div><div>On Jul 18, 2012, at 4:46 PM, Richard Trieu <<a href="mailto:rtrieu@google.com">rtrieu@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><a href="http://llvm.org/bugs/show_bug.cgi?id=6343" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=6343</a><div><br></div><div>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:</div>

<div><br></div><div>enum { A, B, C, Aref = A, count };</div><div>Both B and count will have value 1.</div><div><br></div><div>enum { A, B, C, D = -1, E, F };</div><div>A = E = 0</div><div>B = F = 1</div><div><br></div><div>
This warning found one such issue in LLVM that was fixed in r160465.</div>
<span><duplicate-enum.patch></span>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></div></body></html>