<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/102289>102289</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LeakSanitizer detected memory leaks in malloc (build_sanitizer/llvm/bin/clang-20+0x105632ae)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          vrukesh
      </td>
    </tr>
</table>

<pre>
    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<unsigned int>::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::SmallVectorImpl<clang::TemplateArgument>::operator=(llvm::SmallVectorImpl<clang::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::ArrayRef<clang::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::ArrayRef<clang::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::MutableArrayRef<clang::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::MutableArrayRef<clang::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::MutableArrayRef<clang::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::OpaquePtr<clang::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::OpaquePtr<clang::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`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsm1tT6zjywD-NeVFB2ZKvDzyYXGZSA4QhOfM_83-hZKtNNDiWV5Y5sJ9-S3IuikkIMzV7yNmaKiqAdXH3r1sttaTQpuGPFcClE1w5wfCMtmoh5OWzbJ-gWZxlgr1eXgN9mtGKK_5vkA5JEQMFuQKGlrAU8hWVQJ8adOG4Q8dNf2vLCiTNeMnVKypFThUXlW62pGUpcuTg2MHjhViCg8erFzl4fH392805LDNgDNi5EqLMF5RX54WQ56lcOnictbxkD81GEjwuy2dTwCsHj_OSVo_n2HXwlfviuUFIMAUHJ51Yq0-sf2YK6gYpgSTUUrA2B4esirpq3gUaim9VKShDagGoEa3MAeWCAXrkCuWlqAAtlKob03Ls4PEjV4s2u8iFlii9vzlvRKG-UQnHdbt45Kp7Mb5AP_Fn_ablklbM9G6JnzN0DJOpt3xiXKI-L3KFNt28LeuK4KUWUqHBIB38PHoYTmbp1fXIIUNv1XJJnwBdXKDzn2559QdF58PxaD74eTC9nY9u5w-_fpmM5g4ZTsdjdD4c3KS_jB6uvkyuhw_z3-90P_dQAm0AnQ-1Ig9fZqOHWXo7mU_-f3TvkKGDccqYhKZxyNWXikHBK2AOxusGo1st0EM6m43u55Pp7Uy_7HbzrsHDYHpzN7k2nRmH2BZ9_fqm0MFX-seoVhl9tEdtqdol-QLyp_Nj5fnLy46_WV43eqm7UZPBgj5zIW2P-z9ATKBKKCSyBuQzIFq97oyvi7c9TruqDElo2lL1-lt3tNMJGohlXYIC1FS8rkEh3ncyJ3S1JX7on04R87fvhp6Ho-6f0f399F7Hoo_FNBvLkEvIlXmORIFw7MYoe1Xg4LhxcIJ4hTyCRPYH5Gr9zAQ8qnstpFhuOCOEkIOJi9yXIMiSOE7iAFPQXXxSjNQvvNJNJ0zDoMQLw4LSzE1Y7LF4E0VXkntryXOSuS4QLXlDC3jYiP_3yP7AoG5WOtRSaLTnjcy3WvEqL1sG2wezttYBzMHjG1imWpiLhUNSHDok9eKVEg4meI8GpguSOiSdaT1-g1wJeUUbcMigrcw8yRCvlENGXbVHKb491II5OH4WnJnxN0CbqqXQEebNg-T74Sl5tsPE0usir2vNxCf6M9iSISsyCaEYEjfXZNaKfqJh0-G8p8DCCO7pT28rvn9A_JMTPSCxQ1LfEj3YI_pen5ws69Ihg24KM4VzWNYlVZDKx3YJlouKGiRVQpq5Nf7rvaFcVI1ycPhd_fejXuD6Sc8Nwi1Lz8sDE1stFqenAg4CHaesgRjtUcEy0kAbRFJeqRlVvClovlpnv7H60Ubf2birpZeFZv0knc27z4GocqiVQUM0mGjLJV5z8SHJoiTucbmhTzAE1hrNxpSXrYRJVYhdEN07FLx0ag_QHvff9HK_Wl7t1GpgSQ_U7173nWmuYr2Wqvs1fQapM5hVpI-iqOdgyRYkIwVNeiBnGwVTxm5ALQRbazqgFeOMmsWP1WLcVkb_LZC8XE2KVi39NM1zaJo7ymWvcPD16z3kQrL9bfuR6Zo3qqPdr_lrS8v5aw29x6OXWq7eVOrct-Cr_BQPrFibSklf76HYDYumLU51bN3tdE16g2UGa7fKhCjt3--1uqOSLqeSaYOflOeEWM-yJNy6judavhPEXn8Q7vGdAz7zrjecmBF_SOORSMdPa9h73sZ2BQ6LIjtoO5MRDGhZzsXU5DXTwgDvTGJbcZYL_ag_CNewd5_OzG7KtdhntJtW0ayEP2m7fo-nZAAvCGK_ZwG8sQD2Mi8JjlugU_2EkR8SYjcAfqphtFQro4S-H5nsxzIK2RolyLOYHg5puZpWP7BRTsYIJHR3l3beNnsjrheFfs8Gd1Q2IK2_70SjCv6iO4Wm4aKatUXBX3prPXsRtxckHiAlWzBAvz8do8n6t8UHY5OcY2IBCixAsUfYMUAD2qgtnV0udmVdz_z_C6_Y23HbXyLbTfVsoJvPlJnc-00_xeEOIfUSX8-GiUU0tIkGQX8l8w_RI0Qxwb29NW-bueKiwF74X0f6P8Ax8jRG7FoY461ner6PjwdDKqH6CEdT0TyY1t1EcTRXqem_WrhTcjd-btbnOnD2Pbo_GX1KPnwIN8Fh0HfbxIoElEb_RII_GQnchPR24bD7TyT4GyIB9iyMWUy9YxhTc6q_hOpDMHtwToeEF78hgW0SEcbHSPzY-hPSP7bans74Pgv9_CP6G73MPv57M0IDbKaWarMr-skYtCwrDEFoMFiLNuxbGJIIimMYNgimcgh5SaWZk9JCgUyVkjxrFTSHDkh25zwt2CpnILjdO_MdIfvuLNlPErv2tpB739avcTrWwwnuZdo4sKwXR7S_AfVB652KuU4HtYf9frzcZjd-wAI4OnMMxLIWbcU2yK8Ee3Vw_FnbN4dVDaL-YmObdvihW0T9DZw3uq6PK_q69nanD4zJHQfttn1Oa9wF5uAM24S2GQWmSXI8bK4JDaHgWrJ9syivHteDUsiPDK71Gc6kKoR18niw1XW3u76Kcde8Uacw7DZzdIBNImEPOiuRyEJyfBdL8_tJirY-SHdWQ_6W0pb7_mD1wbnjoHWO53TvjYyxkPe0eoRJxU_CYprWemz4kbk3Ym09EitVoWGWH01VdHdTaY2QSaVAVrTcs8r68_P3mxrvOkJ3gKbLeME_5wRq_-DA3cUMa3AQK5ehQRId3cG0Zvwd3AcD0t9Ou-_kp0u782ps0bbyJUo85h7PFzon3l1nfQfCp8LQjfzectW6EYcTYPnRWXMu6mt4hrJbPMTHt9E28d-c9OzbStucPd0I1pYwWdZCrvPVz191bHYuukQN29dmZ19ubtL73x2SotXN7p1rt2-u0ZZAn8w1S-SR9f3Zzgl18eoSNEgpTPPVPXlUUF4CQ9-4WiB44Qo1iqq20VU8J3TP2CVhCUnoGVx6ESYu9nxCzhaXXsEiiLwgYzjJWBGGMQEcZUmWRUUMoXvGL7GLfTd2IzdxSUAugrDI4tjPfEaKOEtcx3dhSXl5oYldCPl4xpumhUvPxThOzkqaQdmYb1dgXME3ZEodjJ1geCYvzXXyrH1sHN8teaOabTeKqxJ2v3tx4IsXO9eG_-IF4LNWlpfvfKFhfaFUy7vyCwePjTLaXVbaPl_i_wQAAP__MIkLVQ">