aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorYoungsuk Kim <joseph942010@gmail.com>2024-11-22 04:51:09 -0500
committerGitHub <noreply@github.com>2024-11-22 04:51:09 -0500
commitef206446f2bbcb1bacc73d7611a96c457f59499f (patch)
tree6cec2bca1def6be134ed078a0db5f524d3a40d8c /clang/lib/Sema/SemaChecking.cpp
parent1d4602070f96c9a6921d51a3b907f90cd2e3ae32 (diff)
downloadllvm-ef206446f2bbcb1bacc73d7611a96c457f59499f.zip
llvm-ef206446f2bbcb1bacc73d7611a96c457f59499f.tar.gz
llvm-ef206446f2bbcb1bacc73d7611a96c457f59499f.tar.bz2
[clang] Warn const integer-overflow of member in temporary struct bound to rvalue reference (#117225)
Fixes #46755 --------- Co-authored-by: Sirraide <aeternalmail@gmail.com>
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 2fd9907..a49605e 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -12048,7 +12048,8 @@ void Sema::CheckForIntOverflow (const Expr *E) {
New && New->isArray()) {
if (auto ArraySize = New->getArraySize())
Exprs.push_back(*ArraySize);
- }
+ } else if (const auto *MTE = dyn_cast<MaterializeTemporaryExpr>(OriginalE))
+ Exprs.push_back(MTE->getSubExpr());
} while (!Exprs.empty());
}