[llvm] r232314 - Restore the gcc build

David Blaikie dblaikie at gmail.com
Mon Mar 16 22:04:38 PDT 2015


On Sun, Mar 15, 2015 at 9:13 AM, David Majnemer <david.majnemer at gmail.com>
wrote:

>
>
> On Sun, Mar 15, 2015 at 8:54 AM, Duncan Exon Smith <dexonsmith at apple.com>
> wrote:
>
>>
>> On Mar 15, 2015, at 8:34 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>
>>
>> On Mar 14, 2015 11:48 PM, "David Majnemer" <david.majnemer at gmail.com>
>> wrote:
>> >
>> >
>> >
>> > On Sat, Mar 14, 2015 at 11:39 PM, Duncan P. N. Exon Smith <
>> dexonsmith at apple.com> wrote:
>> >>
>> >> +dblaikie
>> >>
>> >> > On 2015 Mar 14, at 23:11, David Majnemer <david.majnemer at gmail.com>
>> wrote:
>> >> >
>> >> > Author: majnemer
>> >> > Date: Sun Mar 15 01:11:24 2015
>> >> > New Revision: 232314
>> >> >
>> >> > URL: http://llvm.org/viewvc/llvm-project?rev=232314&view=rev
>> >> > Log:
>> >> > Restore the gcc build
>> >> >
>> >> > Modified:
>> >> >    llvm/trunk/include/llvm/ADT/ImmutableSet.h
>> >> >
>> >> > Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h
>> >> > URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=232314&r1=232313&r2=232314&view=diff
>> >> >
>> ==============================================================================
>> >> > --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original)
>> >> > +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Sun Mar 15 01:11:24
>> 2015
>> >> > @@ -652,6 +652,7 @@ public:
>> >> >                    Flags=0x3 };
>> >> >
>> >> >   typedef ImutAVLTree<ImutInfo> TreeTy;
>> >> > +  typedef ImutAVLTreeGenericIterator<ImutInfo> Self;
>> >> >
>> >> >   ImutAVLTreeGenericIterator() {}
>> >> >   ImutAVLTreeGenericIterator(const TreeTy *Root) {
>> >> > @@ -692,15 +693,11 @@ public:
>> >> >     }
>> >> >   }
>> >> >
>> >> > -  bool operator==(const ImutAVLTreeGenericIterator &x) const {
>> >> > -    return stack == x.stack;
>> >> > -  }
>> >> > +  bool operator==(const Self &x) const { return stack == x.stack; }
>> >>
>> >> (I'm guessing this was in response to r232312?)
>> >
>> >
>> > I did this because of a build failure introduced by r232309.
>> >
>> >>
>> >>
>> >> What was the error here?  This code looks correct to me, and I'm
>> surprised
>> >> GCC has problems.  A comment in the code would be nice, too.
>> >
>> >
>> > GCC was upset about `typedef ImutAVLTreeGenericIterator<ImutInfo>
>> ImutAVLTreeGenericIterator;`.
>>
>> I removed this in a follow up commit, didn't I ? I'll double check
>> everything when I get back to a keyboard but the typedef was just left in
>> accidentally.
>>
>> Yeah, you removed it in r232312.  That's why I wasn't sure what GCC could
>> be complaining  about.
>>
>
>
> This `typedef ImutAVLTreeInOrderIterator<ImutInfo>
> ImutAVLTreeGenericIterator;` (
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?revision=232312&view=markup#l762
> )
>
> was the typedef that angered GCC.  Because `ImutAVLTreeGenericIterator`
> was also a class template (
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?revision=232312&view=markup#l35
> ).
>

Oh, I see, it's just that there were two different iterators here and I
found the first one & just find/replaced the name... surprised that worked.
Wonder if these iterators are really being used much at all if I could
completely muck up the second one like that. *pokes around with it some
more*


>
>
>> > The diagnostic was something on the order of:
>> >   declaration of 'typedef ImutAVLTreeGenericIterator<ImutInfo>
>> ImutAVLTreeGenericIterator'
>> >   changes meaning of 'ImutAVLTreeGenericIterator' from 'struct
>> ImutAVLTreeGenericIterator'
>> >
>> >>
>> >>
>> >> Bike-shed on naming, but maybe `SelfTy` would be more clear?
>> >
>> >
>> > The original code had `typedef ImutAVLTreeGenericIterator<ImutInfo>
>> _Self;`, either would be fine with me.
>> >
>> >>
>> >>
>> >> >
>> >> > -  bool operator!=(const ImutAVLTreeGenericIterator &x) const {
>> >> > -    return !(*this == x);
>> >> > -  }
>> >> > +  bool operator!=(const Self &x) const { return !operator==(x); }
>> >> >
>> >> > -  ImutAVLTreeGenericIterator &operator++() {
>> >> > +  Self &operator++() {
>> >> >     assert(!stack.empty());
>> >> >     TreeTy* Current = reinterpret_cast<TreeTy*>(stack.back() &
>> ~Flags);
>> >> >     assert(Current);
>> >> > @@ -726,7 +723,7 @@ public:
>> >> >     return *this;
>> >> >   }
>> >> >
>> >> > -  ImutAVLTreeGenericIterator &operator--() {
>> >> > +  Self &operator--() {
>> >> >     assert(!stack.empty());
>> >> >     TreeTy* Current = reinterpret_cast<TreeTy*>(stack.back() &
>> ~Flags);
>> >> >     assert(Current);
>> >> > @@ -759,7 +756,7 @@ class ImutAVLTreeInOrderIterator {
>> >> >
>> >> > public:
>> >> >   typedef ImutAVLTree<ImutInfo> TreeTy;
>> >> > -  typedef ImutAVLTreeInOrderIterator<ImutInfo>
>> ImutAVLTreeGenericIterator;
>> >> > +  typedef ImutAVLTreeInOrderIterator<ImutInfo> Self;
>> >> >
>> >> >   ImutAVLTreeInOrderIterator(const TreeTy* Root) : InternalItr(Root)
>> {
>> >> >     if (Root)
>> >> > @@ -768,18 +765,14 @@ public:
>> >> >
>> >> >   ImutAVLTreeInOrderIterator() : InternalItr() {}
>> >> >
>> >> > -  bool operator==(const ImutAVLTreeGenericIterator &x) const {
>> >> > -    return InternalItr == x.InternalItr;
>> >> > -  }
>> >> > +  bool operator==(const Self &x) const { return InternalItr ==
>> x.InternalItr; }
>> >> >
>> >> > -  bool operator!=(const ImutAVLTreeGenericIterator &x) const {
>> >> > -    return !(*this == x);
>> >> > -  }
>> >> > +  bool operator!=(const Self &x) const { return !(*this == x); }
>> >> >
>> >> >   TreeTy *operator*() const { return *InternalItr; }
>> >> >   TreeTy *operator->() const { return *InternalItr; }
>> >> >
>> >> > -  ImutAVLTreeGenericIterator &operator++() {
>> >> > +  Self &operator++() {
>> >> >     do ++InternalItr;
>> >> >     while (!InternalItr.atEnd() &&
>> >> >            InternalItr.getVisitState() !=
>> InternalIteratorTy::VisitedLeft);
>> >> > @@ -787,7 +780,7 @@ public:
>> >> >     return *this;
>> >> >   }
>> >> >
>> >> > -  ImutAVLTreeGenericIterator &operator--() {
>> >> > +  Self &operator--() {
>> >> >     do --InternalItr;
>> >> >     while (!InternalItr.atBeginning() &&
>> >> >            InternalItr.getVisitState() !=
>> InternalIteratorTy::VisitedLeft);
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > llvm-commits mailing list
>> >> > llvm-commits at cs.uiuc.edu
>> >> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> >>
>> >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150316/86081ca5/attachment.html>


More information about the llvm-commits mailing list