1*d6a81614SMichael Ilseman //===- PostOrderIteratorTest.cpp - PostOrderIterator unit tests -----------===// 2*d6a81614SMichael Ilseman // 3*d6a81614SMichael Ilseman // The LLVM Compiler Infrastructure 4*d6a81614SMichael Ilseman // 5*d6a81614SMichael Ilseman // This file is distributed under the University of Illinois Open Source 6*d6a81614SMichael Ilseman // License. See LICENSE.TXT for details. 7*d6a81614SMichael Ilseman // 8*d6a81614SMichael Ilseman //===----------------------------------------------------------------------===// 9*d6a81614SMichael Ilseman #include "gtest/gtest.h" 10*d6a81614SMichael Ilseman #include "llvm/ADT/PostOrderIterator.h" 11*d6a81614SMichael Ilseman #include "llvm/IR/BasicBlock.h" 12*d6a81614SMichael Ilseman #include "llvm/IR/CFG.h" 13*d6a81614SMichael Ilseman using namespace llvm; 14*d6a81614SMichael Ilseman 15*d6a81614SMichael Ilseman namespace { 16*d6a81614SMichael Ilseman 17*d6a81614SMichael Ilseman // Whether we're able to compile 18*d6a81614SMichael Ilseman TEST(PostOrderIteratorTest, Compiles) { 19*d6a81614SMichael Ilseman typedef SmallPtrSet<void *, 4> ExtSetTy; 20*d6a81614SMichael Ilseman 21*d6a81614SMichael Ilseman // Tests that template specializations are kept up to date 22*d6a81614SMichael Ilseman void *Null = nullptr; 23*d6a81614SMichael Ilseman po_iterator_storage<std::set<void *>, false> PIS; 24*d6a81614SMichael Ilseman PIS.insertEdge(Null, Null); 25*d6a81614SMichael Ilseman ExtSetTy Ext; 26*d6a81614SMichael Ilseman po_iterator_storage<ExtSetTy, true> PISExt(Ext); 27*d6a81614SMichael Ilseman PIS.insertEdge(Null, Null); 28*d6a81614SMichael Ilseman 29*d6a81614SMichael Ilseman // Test above, but going through po_iterator (which inherits from template 30*d6a81614SMichael Ilseman // base) 31*d6a81614SMichael Ilseman BasicBlock *NullBB = nullptr; 32*d6a81614SMichael Ilseman auto PI = po_end(NullBB); 33*d6a81614SMichael Ilseman PI.insertEdge(NullBB, NullBB); 34*d6a81614SMichael Ilseman auto PIExt = po_ext_end(NullBB, Ext); 35*d6a81614SMichael Ilseman PIExt.insertEdge(NullBB, NullBB); 36*d6a81614SMichael Ilseman } 37*d6a81614SMichael Ilseman } 38