Skip to content

LeakSanitizer detected memory leaks in llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) /home/ubuntu/llvm-project/llvm/lib/Support/SmallVector.cpp:151:15 #102289

@vrukesh

Description

@vrukesh

LeakSanitizer: detected memory leaks .
Vulnerability location: malloc (/home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/llvm/bin/clang-20+0x105632ae)

Steps to reproduce:

  1. Download the source code git clone https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm.git
  2. Give commands:

cd LLVM-embedded-toolchain-for-Arm
mkdir build_sanitizer;
cd build_sanitizer;
export CCACHE_DISABLE=1
cmake .. -GNinja -DFETCHCONTENT_QUIET=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER="Address;Undefined" -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
ninja llvm-toolchain
ninja check-llvm-toolchain
ninja check-cxx

Expected behavior
We do not observe any memory leaks.

Observed result
We observe memory leaks. Complete snippet is:

`================================================================
==4061127==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 2808 byte(s) in 13 object(s) allocated from:
#0 0x55b9889852ae in malloc (/home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/llvm/bin/clang-20+0x105632ae) (BuildId: a3166faab09d81d8)
#1 0x55b98c3b00e3 in safe_malloc /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/include/llvm/Support/MemAlloc.h:26:18
#2 0x55b98c3b00e3 in llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/lib/Support/SmallVector.cpp:143:15
#3 0x55b993a2e90c in grow_pod /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/include/llvm/ADT/SmallVector.h:151:11
#4 0x55b993a2e90c in grow /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/include/llvm/ADT/SmallVector.h:538:41
#5 0x55b993a2e90c in llvm::SmallVectorImplclang::TemplateArgument::operator=(llvm::SmallVectorImplclang::TemplateArgument const&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/include/llvm/ADT/SmallVector.h:1049:11
#6 0x55b993a11c5e in operator= /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/llvm/include/llvm/ADT/SmallVector.h:1255:25
#7 0x55b993a11c5e in clang::ConstraintSatisfaction::operator=(clang::ConstraintSatisfaction const&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/include/clang/AST/ASTConcept.h:35:7
#8 0x55b994e9b798 in clang::MakeDeductionFailureInfo(clang::ASTContext&, clang::TemplateDeductionResult, clang::sema::TemplateDeductionInfo&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaOverload.cpp:777:25
#9 0x55b994ed3fa9 in clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::Expr::Classification, llvm::ArrayRefclang::Expr*, clang::OverloadCandidateSet&, bool, bool, clang::OverloadCandidateParamOrder) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaOverload.cpp:7621:36
#10 0x55b994ed5818 in clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRefclang::Expr*, clang::OverloadCandidateSet&, bool, clang::OverloadCandidateParamOrder) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaOverload.cpp:7375:5
#11 0x55b994f26ffb in clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRefclang::Expr*, clang::SourceLocation) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaOverload.cpp:15584:5
#12 0x55b99421b195 in clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRefclang::Expr*, clang::SourceLocation, clang::Expr*, bool, bool) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaExpr.cpp:6447:14
#13 0x55b99425cb8a in clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRefclang::Expr*, clang::SourceLocation, clang::Expr*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Sema/SemaExpr.cpp:6360:7
#14 0x55b993301764 in clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:2243:23
#15 0x55b99330813d in clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:1945:9
#16 0x55b993308558 in clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:1232:18
#17 0x55b9932ff216 in clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:712:20
#18 0x55b993314424 in clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&, bool, bool, clang::OpaquePtrclang::QualType&, clang::SourceLocation&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:3265:18
#19 0x55b99330aa78 in clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:1093:11
#20 0x55b9932ff216 in clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:712:20
#21 0x55b9932fb8a1 in clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:182:20
#22 0x55b9932fb722 in clang::Parser::ParseExpression(clang::Parser::TypeCastState) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseExpr.cpp:133:18
#23 0x55b99344d64c in clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseStmt.cpp:563:19
#24 0x55b9934497ef in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseStmt.cpp:292:14
#25 0x55b9934487ab in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseStmt.cpp:124:20
#26 0x55b99345d5e1 in clang::Parser::ParseCompoundStatementBody(bool) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseStmt.cpp:1257:11
#27 0x55b993460f7a in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseStmt.cpp:2535:21
#28 0x55b9932a99ef in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/Parser.cpp:1525:10
#29 0x55b9933b6364 in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/ParseDecl.cpp:2471:17
#30 0x55b9932a6bc6 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/Parser.cpp:1249:10
#31 0x55b9932a597d in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/Parser.cpp:1271:12
#32 0x55b9932a31d0 in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/Parser.cpp:1074:14
#33 0x55b99329edcf in clang::Parser::ParseTopLevelDecl(clang::OpaquePtrclang::DeclGroupRef&, clang::Sema::ModuleImportState&) /home/vrukesh/LLVM-embedded-toolchain-for-Arm/build_sanitizer/_deps/llvmproject-src/clang/lib/Parse/Parser.cpp:763:12

SUMMARY: AddressSanitizer: 2808 byte(s) leaked in 13 allocation(s).
error: command failed with exit status: 1`

Metadata

Metadata

Assignees

No one assigned

    Labels

    clang:frontendLanguage frontend issues, e.g. anything involving "Sema"code-quality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions