brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · c71ee3b Raw
45 lines · c
1//==- PrettyStackTraceLocationContext.h - show analysis backtrace --*- 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_CLANG_LIB_STATICANALYZER_CORE_PRETTYSTACKTRACELOCATIONCONTEXT_H10#define LLVM_CLANG_LIB_STATICANALYZER_CORE_PRETTYSTACKTRACELOCATIONCONTEXT_H11 12#include "clang/Analysis/AnalysisDeclContext.h"13 14namespace clang {15namespace ento {16 17/// While alive, includes the current analysis stack in a crash trace.18///19/// Example:20/// \code21/// 0.     Program arguments: ...22/// 1.     <eof> parser at end of file23/// 2.     While analyzing stack:24///        #0 void inlined()25///        #1 void test()26/// 3.     crash-trace.c:6:3: Error evaluating statement27/// \endcode28class PrettyStackTraceLocationContext : public llvm::PrettyStackTraceEntry {29  const LocationContext *LCtx;30public:31  PrettyStackTraceLocationContext(const LocationContext *LC) : LCtx(LC) {32    assert(LCtx);33  }34 35  void print(raw_ostream &Out) const override {36    Out << "While analyzing stack: \n";37    LCtx->dumpStack(Out);38  }39};40 41} // end ento namespace42} // end clang namespace43 44#endif45