r201981 - Sema: Simplify away one-iteration loops.
Arthur O'Dwyer
arthur.j.odwyer at gmail.com
Sun Feb 23 13:16:01 PST 2014
On Sun, Feb 23, 2014 at 6:34 AM, Benjamin Kramer
<benny.kra at googlemail.com> wrote:
> Author: d0k
> Date: Sun Feb 23 08:34:50 2014
> New Revision: 201981
>
> URL: http://llvm.org/viewvc/llvm-project?rev=201981&view=rev
> Log:
> Sema: Simplify away one-iteration loops.
>
> No functionality change.
[…]
> @@ -7381,10 +7375,7 @@ bool GetMatchingCType(
> return false;
>
> if (VD) {
> - for (specific_attr_iterator<TypeTagForDatatypeAttr>
> - I = VD->specific_attr_begin<TypeTagForDatatypeAttr>(),
> - E = VD->specific_attr_end<TypeTagForDatatypeAttr>();
> - I != E; ++I) {
> + if (TypeTagForDatatypeAttr *I = VD->getAttr<TypeTagForDatatypeAttr>()) {
> if (I->getArgumentKind() != ArgumentKind) {
> FoundWrongKind = true;
> return false;
FYI, this does *look* like a functionality change. Compare the loop in
Sema::FinalizeDeclaration(); a declaration can have more than one
instance of TypeTagForDatatypeAttr. Looking at just the first one
*seems* like it would give different results from looking at all of
them.
If I'm right, then a regression test should definitely be added: one
that distinguishes the old code's behavior from the new code's
behavior and decrees which one should be considered "correct".
–Arthur
More information about the cfe-commits
mailing list