/usr/include/clang/Analysis/Analyses/ReachableCode.h is in libclang-dev 3.0-6ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | //===- ReachableCode.h -----------------------------------------*- C++ --*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// A flow-sensitive, path-insensitive analysis of unreachable code.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_REACHABLECODE_H
#define LLVM_CLANG_REACHABLECODE_H
#include "clang/Basic/SourceLocation.h"
//===----------------------------------------------------------------------===//
// Forward declarations.
//===----------------------------------------------------------------------===//
namespace llvm {
class BitVector;
}
namespace clang {
class AnalysisContext;
class CFGBlock;
}
//===----------------------------------------------------------------------===//
// API.
//===----------------------------------------------------------------------===//
namespace clang {
namespace reachable_code {
class Callback {
public:
virtual ~Callback() {}
virtual void HandleUnreachable(SourceLocation L, SourceRange R1,
SourceRange R2) = 0;
};
/// ScanReachableFromBlock - Mark all blocks reachable from Start.
/// Returns the total number of blocks that were marked reachable.
unsigned ScanReachableFromBlock(const CFGBlock *Start,
llvm::BitVector &Reachable);
void FindUnreachableCode(AnalysisContext &AC, Callback &CB);
}} // end namespace clang::reachable_code
#endif
|