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