[clang] [clang][bytecode] Fix a std::optional<bool> mishap (PR #167091)

Timm Baeder via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 7 20:21:55 PST 2025


https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/167091

This is about the value saved in the std::optional, not about whether the optional has a value at all.

>From 1ebcbfc920b44d61d60763a6afadd0dcd32e03e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbaeder at redhat.com>
Date: Sat, 8 Nov 2025 05:20:29 +0100
Subject: [PATCH] [clang][bytecode] Fix a std::optional<bool> mishap

This is about the value saved in the std::optional, not about whether
the optional has a value at all.
---
 clang/lib/AST/ByteCode/Compiler.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp
index 84f7e6287609c..d0368feda0052 100644
--- a/clang/lib/AST/ByteCode/Compiler.cpp
+++ b/clang/lib/AST/ByteCode/Compiler.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "Compiler.h"
+#include "ByteCode/Interp.h"
 #include "ByteCodeEmitter.h"
 #include "Context.h"
 #include "FixedPoint.h"
@@ -2508,7 +2509,7 @@ bool Compiler<Emitter>::VisitAbstractConditionalOperator(
   };
 
   if (std::optional<bool> BoolValue = getBoolValue(Condition)) {
-    if (BoolValue)
+    if (*BoolValue)
       return visitChildExpr(TrueExpr);
     return visitChildExpr(FalseExpr);
   }



More information about the cfe-commits mailing list