[flang-commits] [flang] [flang][OpenMP] Account for GenericExprWrapper being null (PR #186416)

Krzysztof Parzyszek via flang-commits flang-commits at lists.llvm.org
Fri Mar 13 08:26:26 PDT 2026


https://github.com/kparzysz created https://github.com/llvm/llvm-project/pull/186416

When getting a MaybeExpr from parser::Expr, take into account that the GeneticExprWrapper (that wraps MaybeExpr) may itself be null.

>From 52b552e2c13ac85d6541fe324d86faea9f09307c Mon Sep 17 00:00:00 2001
From: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: Fri, 13 Mar 2026 10:13:59 -0500
Subject: [PATCH] [flang][OpenMP] Account for GenericExprWrapper being null

When getting a MaybeExpr from parser::Expr, take into account that
the GeneticExprWrapper (that wraps MaybeExpr) may itself be null.
---
 flang/lib/Semantics/openmp-utils.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/flang/lib/Semantics/openmp-utils.cpp b/flang/lib/Semantics/openmp-utils.cpp
index 8b0214531ee25..78f763c27e757 100644
--- a/flang/lib/Semantics/openmp-utils.cpp
+++ b/flang/lib/Semantics/openmp-utils.cpp
@@ -249,7 +249,10 @@ static MaybeExpr GetEvaluateExprFromTyped(const parser::TypedExpr &typedExpr) {
   // ForwardOwningPointer           typedExpr
   // `- GenericExprWrapper          ^.get()
   //    `- std::optional<Expr>      ^->v
-  return DEREF(typedExpr.get()).v;
+  if (auto *wrapper{typedExpr.get()}) {
+    return wrapper->v;
+  }
+  return std::nullopt;
 }
 
 MaybeExpr GetEvaluateExpr(const parser::Expr &parserExpr) {



More information about the flang-commits mailing list