[clang] 145815c - [clang][Interp][NFC] Move EvaluationResult::dump() to Disasm.cpp
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 5 04:27:38 PDT 2024
Author: Timm Bäder
Date: 2024-06-05T13:24:22+02:00
New Revision: 145815c180fc82c5a55bf568d01d98d250490a55
URL: https://github.com/llvm/llvm-project/commit/145815c180fc82c5a55bf568d01d98d250490a55
DIFF: https://github.com/llvm/llvm-project/commit/145815c180fc82c5a55bf568d01d98d250490a55.diff
LOG: [clang][Interp][NFC] Move EvaluationResult::dump() to Disasm.cpp
Where all the other dump() functions live.
Added:
Modified:
clang/lib/AST/Interp/Disasm.cpp
clang/lib/AST/Interp/EvaluationResult.cpp
Removed:
################################################################################
diff --git a/clang/lib/AST/Interp/Disasm.cpp b/clang/lib/AST/Interp/Disasm.cpp
index e442c6c709f14..3f8a92ed2f0bd 100644
--- a/clang/lib/AST/Interp/Disasm.cpp
+++ b/clang/lib/AST/Interp/Disasm.cpp
@@ -11,6 +11,8 @@
//===----------------------------------------------------------------------===//
#include "Boolean.h"
+#include "Context.h"
+#include "EvaluationResult.h"
#include "Floating.h"
#include "Function.h"
#include "FunctionPointer.h"
@@ -305,3 +307,43 @@ LLVM_DUMP_METHOD void Block::dump(llvm::raw_ostream &OS) const {
OS << " Extern: " << IsExtern << "\n";
OS << " Initialized: " << IsInitialized << "\n";
}
+
+LLVM_DUMP_METHOD void EvaluationResult::dump() const {
+ assert(Ctx);
+ auto &OS = llvm::errs();
+ const ASTContext &ASTCtx = Ctx->getASTContext();
+
+ switch (Kind) {
+ case Empty:
+ OS << "Empty\n";
+ break;
+ case RValue:
+ OS << "RValue: ";
+ std::get<APValue>(Value).dump(OS, ASTCtx);
+ break;
+ case LValue: {
+ assert(Source);
+ QualType SourceType;
+ if (const auto *D = Source.dyn_cast<const Decl *>()) {
+ if (const auto *VD = dyn_cast<ValueDecl>(D))
+ SourceType = VD->getType();
+ } else if (const auto *E = Source.dyn_cast<const Expr *>()) {
+ SourceType = E->getType();
+ }
+
+ OS << "LValue: ";
+ if (const auto *P = std::get_if<Pointer>(&Value))
+ P->toAPValue().printPretty(OS, ASTCtx, SourceType);
+ else if (const auto *FP = std::get_if<FunctionPointer>(&Value)) // Nope
+ FP->toAPValue().printPretty(OS, ASTCtx, SourceType);
+ OS << "\n";
+ break;
+ }
+ case Invalid:
+ OS << "Invalid\n";
+ break;
+ case Valid:
+ OS << "Valid\n";
+ break;
+ }
+}
diff --git a/clang/lib/AST/Interp/EvaluationResult.cpp b/clang/lib/AST/Interp/EvaluationResult.cpp
index 150a793da881d..c04b0fc0a1121 100644
--- a/clang/lib/AST/Interp/EvaluationResult.cpp
+++ b/clang/lib/AST/Interp/EvaluationResult.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "EvaluationResult.h"
-#include "Context.h"
#include "InterpState.h"
#include "Record.h"
#include "clang/AST/ExprCXX.h"
@@ -159,45 +158,5 @@ bool EvaluationResult::checkFullyInitialized(InterpState &S,
return CheckArrayInitialized(S, InitLoc, Ptr, CAT);
}
-void EvaluationResult::dump() const {
- assert(Ctx);
- auto &OS = llvm::errs();
- const ASTContext &ASTCtx = Ctx->getASTContext();
-
- switch (Kind) {
- case Empty:
- OS << "Empty\n";
- break;
- case RValue:
- OS << "RValue: ";
- std::get<APValue>(Value).dump(OS, ASTCtx);
- break;
- case LValue: {
- assert(Source);
- QualType SourceType;
- if (const auto *D = Source.dyn_cast<const Decl *>()) {
- if (const auto *VD = dyn_cast<ValueDecl>(D))
- SourceType = VD->getType();
- } else if (const auto *E = Source.dyn_cast<const Expr *>()) {
- SourceType = E->getType();
- }
-
- OS << "LValue: ";
- if (const auto *P = std::get_if<Pointer>(&Value))
- P->toAPValue().printPretty(OS, ASTCtx, SourceType);
- else if (const auto *FP = std::get_if<FunctionPointer>(&Value)) // Nope
- FP->toAPValue().printPretty(OS, ASTCtx, SourceType);
- OS << "\n";
- break;
- }
- case Invalid:
- OS << "Invalid\n";
- break;
- case Valid:
- OS << "Valid\n";
- break;
- }
-}
-
} // namespace interp
} // namespace clang
More information about the cfe-commits
mailing list