aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaOpenMP.cpp
diff options
context:
space:
mode:
authorJinsong Ji <jinsong.ji@intel.com>2024-10-21 12:21:50 -0400
committerGitHub <noreply@github.com>2024-10-21 12:21:50 -0400
commitf1e455ed51be4f53462db87aa5d64dbd830e5de2 (patch)
treefa54fe88642e8cf22c912d4d905f921bbd2f3c17 /clang/lib/Sema/SemaOpenMP.cpp
parentfc59f2cc0f191bb7a0706dfb65e3e46fef69f466 (diff)
downloadllvm-f1e455ed51be4f53462db87aa5d64dbd830e5de2.zip
llvm-f1e455ed51be4f53462db87aa5d64dbd830e5de2.tar.gz
llvm-f1e455ed51be4f53462db87aa5d64dbd830e5de2.tar.bz2
[NFC][Sema][OpenMP] Fix free-nonheap-object warning (#112942)
This is one of the many PRs to fix errors with LLVM_ENABLE_WERROR=on. Built by GCC 11. Fix warning In destructor ‘llvm::APInt::~APInt()’, inlined from ‘llvm::APInt::~APInt()’ at llvm-project/llvm/include/llvm/ADT/APInt.h:190:3, inlined from ‘llvm::APSInt::~APSInt()’ at llvm-project/llvm/include/llvm/ADT/APSInt.h:23:21, inlined from ‘bool checkOMPArraySectionConstantForReduction(clang::ASTContext&, const clang::ArraySectionExpr*, bool&, llvm::SmallVectorImpl<llvm::APSInt>&)’ at llvm-project/clang/lib/Sema/SemaOpenMP.cpp:18357:45, inlined from ‘bool actOnOMPReductionKindClause(clang::Sema&, {anonymous}::DSAStackTy*, clang::OpenMPClauseKind, llvm::ArrayRef<clang::Expr*>, clang::SourceLocation, clang::SourceLocation, clang::SourceLocation, clang::SourceLocation, clang::CXXScopeSpec&, const clang::DeclarationNameInfo&, llvm::ArrayRef<clang::Expr*>, {anonymous}::ReductionData&)’ at llvm-project/clang/lib/Sema/SemaOpenMP.cpp:18715:68: llvm-project/llvm/include/llvm/ADT/APInt.h:192:18: error: ‘void operator delete [](void*)’ called on a pointer to an unallocated object ‘1’ [-Werror=free-nonheap-object] 192 | delete[] U.pVal; | ^~~~
Diffstat (limited to 'clang/lib/Sema/SemaOpenMP.cpp')
-rw-r--r--clang/lib/Sema/SemaOpenMP.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 0232745..fa81fc4 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -18335,7 +18335,8 @@ static bool checkOMPArraySectionConstantForReduction(
return false;
// This is an array subscript which has implicit length 1!
- ArraySizes.push_back(llvm::APSInt::get(1));
+ llvm::APSInt ConstantOne = llvm::APSInt::get(1);
+ ArraySizes.push_back(ConstantOne);
} else {
Expr::EvalResult Result;
if (!Length->EvaluateAsInt(Result, Context))
@@ -18354,7 +18355,8 @@ static bool checkOMPArraySectionConstantForReduction(
if (!SingleElement) {
while (const auto *TempASE = dyn_cast<ArraySubscriptExpr>(Base)) {
// Has implicit length 1!
- ArraySizes.push_back(llvm::APSInt::get(1));
+ llvm::APSInt ConstantOne = llvm::APSInt::get(1);
+ ArraySizes.push_back(ConstantOne);
Base = TempASE->getBase()->IgnoreParenImpCasts();
}
}