[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;
| ^~~~
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user