From 3c6f91e5b671321c95259dabecdbdfe4a6d69ce1 Mon Sep 17 00:00:00 2001 From: martinboehme Date: Tue, 16 Apr 2024 08:49:45 +0200 Subject: [clang][dataflow] Fix result object location for builtin `<=>`. (#88726) The newly added test causes an assertion failure in `PropagateResultObject()` without the fix added here. --- clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp') diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp index bea15ce..ee25811 100644 --- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp @@ -508,6 +508,11 @@ public: isa(E)) { return; } + if (auto *Op = dyn_cast(E); + Op && Op->getOpcode() == BO_Cmp) { + // Builtin `<=>` returns a `std::strong_ordering` object. + return; + } if (auto *InitList = dyn_cast(E)) { if (!InitList->isSemanticForm()) -- cgit v1.1