Part of http://reviews.llvm.org/D7827. Although we currently always use only one (or zero) symbolizer tool from POSIXSymbolizer, let's prepare a "fallback chain", which will be useful in the planned atos- and dladdr-based symbolizers.
You need a SymbolizerTool constructor that would initialize next to nullptr. Also, add a comment here why you need it.
Consider just taking IntrusiveList<SymbolizerTool> as an input parameter. Otherwise you:
Why not just return here?
LGTM, but please address the comment.
IntrusiveList is designed to be a POD, I think it would be easier to just pass it by value and copy it...
That is, no need to call to symbolizer_allocator_ here, just
IntrusiveList<SymbolizerTool> list; list.clear(); //... return new(symbolizer_allocator_) POSIXSymbolizer(list);