Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===-- NoopLattice.h -------------------------------------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. //  This file defines the lattice with exactly one element.
  10. //
  11. //===----------------------------------------------------------------------===//
  12.  
  13. #ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOP_LATTICE_H
  14. #define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOP_LATTICE_H
  15.  
  16. #include "clang/Analysis/FlowSensitive/DataflowLattice.h"
  17. #include <ostream>
  18.  
  19. namespace clang {
  20. namespace dataflow {
  21.  
  22. /// Trivial lattice for dataflow analysis with exactly one element.
  23. ///
  24. /// Useful for analyses that only need the Environment and nothing more.
  25. class NoopLattice {
  26. public:
  27.   bool operator==(const NoopLattice &Other) const { return true; }
  28.  
  29.   LatticeJoinEffect join(const NoopLattice &Other) {
  30.     return LatticeJoinEffect::Unchanged;
  31.   }
  32. };
  33.  
  34. inline std::ostream &operator<<(std::ostream &OS, const NoopLattice &) {
  35.   return OS << "noop";
  36. }
  37.  
  38. } // namespace dataflow
  39. } // namespace clang
  40.  
  41. #endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_NOOP_LATTICE_H
  42.