[PATCH] D23466: ADT: Remove UB in ilist (and use a circular linked list)
Duncan P. N. Exon Smith via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 14 16:42:54 PDT 2016
> On 2016-Aug-13, at 16:37, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
>
>> On Aug 13, 2016, at 2:54 PM, Duncan P. N. Exon Smith via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>
>>
>>> On 2016-Aug-12, at 17:31, Duncan P. N. Exon Smith via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>>
>>>>
>>>> ================
>>>> Comment at: include/llvm/ADT/ilist.h:324
>>>> @@ -424,7 +323,3 @@
>>>>
>>>> - iplist() : Head(this->provideInitialHead()) {}
>>>> - ~iplist() {
>>>> - if (!Head) return;
>>>> - clear();
>>>> - Traits::destroySentinel(getTail());
>>>> - }
>>>> + iplist() = default;
>>>> + ~iplist() { clear(); }
>>>> ----------------
>>>> Could be removed?
>>>
>>> Certainly the destructor needs to stay. I'll remove the default constructor if it still compiles (but I'm always wary about what will or will not compile on MSVC...)
>>
>> BTW, this didn't compile without `iplist() = default`.
>
> Interesting, what was the reason?
Specifically:
/Users/dexonsmith/data/llvm/working/include/llvm/ADT/ilist.h:599:3: error: constructor for 'llvm::ilist<llvm::yaml::Token>' must explicitly initialize the base class 'iplist<llvm::yaml::Token>' which does not have a default constructor
ilist() {}
^
/Users/dexonsmith/data/llvm/working/lib/Support/YAMLParser.cpp:751:10: note: in instantiation of member function 'llvm::ilist<llvm::yaml::Token>::ilist' requested here
Scanner::Scanner(StringRef Input, SourceMgr &sm, bool ShowColors)
^
/Users/dexonsmith/data/llvm/working/include/llvm/ADT/ilist.h:284:7: note: 'llvm::iplist<llvm::yaml::Token, llvm::ilist_traits<llvm::yaml::Token> >' declared here
class iplist : public Traits, ilist_node_access {
^
1 error generated.
I assume this is because of:
iplist(const iplist &) = delete;
> —
> Mehdi
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160814/887d8316/attachment.html>
More information about the llvm-commits
mailing list