diff options
author | martinboehme <mboehme@google.com> | 2024-04-16 08:49:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-16 08:49:45 +0200 |
commit | 3c6f91e5b671321c95259dabecdbdfe4a6d69ce1 (patch) | |
tree | bf2293383aafae130436db8c4112295686af3f89 /clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | |
parent | e2c91091e537a54f1469610ab407e7c9561e7ffc (diff) | |
download | llvm-3c6f91e5b671321c95259dabecdbdfe4a6d69ce1.zip llvm-3c6f91e5b671321c95259dabecdbdfe4a6d69ce1.tar.gz llvm-3c6f91e5b671321c95259dabecdbdfe4a6d69ce1.tar.bz2 |
[clang][dataflow] Fix result object location for builtin `<=>`. (#88726)
The newly added test causes an assertion failure in
`PropagateResultObject()`
without the fix added here.
Diffstat (limited to 'clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp')
-rw-r--r-- | clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
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<CXXStdInitializerListExpr>(E)) { return; } + if (auto *Op = dyn_cast<BinaryOperator>(E); + Op && Op->getOpcode() == BO_Cmp) { + // Builtin `<=>` returns a `std::strong_ordering` object. + return; + } if (auto *InitList = dyn_cast<InitListExpr>(E)) { if (!InitList->isSemanticForm()) |