ADT: Move ilist_node_access to ilist_detail::NodeAccess...
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sat, 10 Sep 2016 16:55:06 +0000 (16:55 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sat, 10 Sep 2016 16:55:06 +0000 (16:55 +0000)
commit34c4d2abfd7a33f9190d50243811fe219977e981
treecbee62e4171910459465bcf642cd5493885e85ca
parent41aceac37f42013a0a3483fca61f86cbb7dabc32
ADT: Move ilist_node_access to ilist_detail::NodeAccess...

... and make a few ilist-internal API changes, in preparation for
changing how ilist_node is templated.  The only effect for ilist users
should be changing the friend target from llvm::ilist_node_access to
llvm::ilist_detail::NodeAccess (which is only necessary when they
inherit privately from ilist_node).
- Split out SpecificNodeAccess, which has overloads of getNodePtr and
  getValuePtr that are untemplated.
- Use more typedefs to prevent more changes later.
- Force inheritance to use *NodeAccess (to emphasize that ilist *users*
  shouldn't be doing this).

There should be no functionality change here.

llvm-svn: 281142
llvm/include/llvm/ADT/ilist_iterator.h
llvm/include/llvm/ADT/ilist_node.h
llvm/include/llvm/ADT/simple_ilist.h
llvm/unittests/ADT/IListSentinelTest.cpp
llvm/unittests/ADT/IListTest.cpp