Author: Timm Baeder
Date: 2025-08-28T10:53:40+02:00
New Revision: c22a2fdf4d96b6e07dfe22ff956899201da95c05

URL: 
https://github.com/llvm/llvm-project/commit/c22a2fdf4d96b6e07dfe22ff956899201da95c05
DIFF: 
https://github.com/llvm/llvm-project/commit/c22a2fdf4d96b6e07dfe22ff956899201da95c05.diff

LOG: [clang][bytecode][NFC] Clean up EvaluationResult (#155782)

Remove incorrect comments, unused includes, an unused function and make
the Ctx member debug-build-only.

Added: 
    

Modified: 
    clang/lib/AST/ByteCode/Disasm.cpp
    clang/lib/AST/ByteCode/EvaluationResult.h

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/ByteCode/Disasm.cpp 
b/clang/lib/AST/ByteCode/Disasm.cpp
index 6ca6e93c46177..ac904d359d8cc 100644
--- a/clang/lib/AST/ByteCode/Disasm.cpp
+++ b/clang/lib/AST/ByteCode/Disasm.cpp
@@ -549,7 +549,6 @@ LLVM_DUMP_METHOD void Block::dump(llvm::raw_ostream &OS) 
const {
 }
 
 LLVM_DUMP_METHOD void EvaluationResult::dump() const {
-  assert(Ctx);
   auto &OS = llvm::errs();
 
   if (empty()) {
@@ -558,6 +557,9 @@ LLVM_DUMP_METHOD void EvaluationResult::dump() const {
     OS << "Invalid\n";
   } else {
     OS << "Value: ";
+#ifndef NDEBUG
+    assert(Ctx);
     Value.dump(OS, Ctx->getASTContext());
+#endif
   }
 }

diff  --git a/clang/lib/AST/ByteCode/EvaluationResult.h 
b/clang/lib/AST/ByteCode/EvaluationResult.h
index d00b9ca02a48d..c296cc98ca375 100644
--- a/clang/lib/AST/ByteCode/EvaluationResult.h
+++ b/clang/lib/AST/ByteCode/EvaluationResult.h
@@ -12,8 +12,6 @@
 #include "clang/AST/APValue.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Expr.h"
-#include <optional>
-#include <variant>
 
 namespace clang {
 namespace interp {
@@ -25,8 +23,8 @@ class InterpState;
 
 /// Defines the result of an evaluation.
 ///
-/// The result might be in 
diff erent forms--one of the pointer types,
-/// an APValue, or nothing.
+/// The Kind defined if the evaluation was invalid, valid (but empty, e.g. for
+/// void expressions) or if we have a valid evaluation result.
 ///
 /// We use this class to inspect and diagnose the result, as well as
 /// convert it to the requested form.
@@ -41,16 +39,12 @@ class EvaluationResult final {
   using DeclTy = llvm::PointerUnion<const Decl *, const Expr *>;
 
 private:
+#ifndef NDEBUG
   const Context *Ctx = nullptr;
+#endif
   APValue Value;
   ResultKind Kind = Empty;
-  DeclTy Source = nullptr; // Currently only needed for dump().
-
-  EvaluationResult(ResultKind Kind) : Kind(Kind) {
-    // Leave everything empty. Can be used as an
-    // error marker or for void return values.
-    assert(Kind == Valid || Kind == Invalid);
-  }
+  DeclTy Source = nullptr;
 
   void setSource(DeclTy D) { Source = D; }
 
@@ -69,7 +63,11 @@ class EvaluationResult final {
   }
 
 public:
+#ifndef NDEBUG
   EvaluationResult(const Context *Ctx) : Ctx(Ctx) {}
+#else
+  EvaluationResult(const Context *Ctx) {}
+#endif
 
   bool empty() const { return Kind == Empty; }
   bool isInvalid() const { return Kind == Invalid; }
@@ -94,7 +92,7 @@ class EvaluationResult final {
     if (const auto *D =
             dyn_cast_if_present<ValueDecl>(Source.dyn_cast<const Decl *>()))
       return D->getType();
-    else if (const auto *E = Source.dyn_cast<const Expr *>())
+    if (const auto *E = Source.dyn_cast<const Expr *>())
       return E->getType();
     return QualType();
   }


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to