hctim wrote: Hi,
Unfortunately this patch appears to have introduced a memory leak that was detected by the sanitizer buildbots (https://lab.llvm.org/buildbot/#/builders/52/builds/1079). The issue can be reproduced with a minimal ASan build configuration, like: ``` $ cmake \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DLLVM_USE_LINKER=lld \ -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="-fsanitize=address" \ -DCMAKE_CXX_FLAGS="-fsanitize=address" \ -DLLVM_USE_SANITIZER=Address \ /path/to/llvm/llvm $ LIT_OPTS='--filter builtins' ninja check-clang FAIL: Clang :: CodeGen/builtins.c (501 of 506) 11:15:42 [210/894] ******************** TEST 'Clang :: CodeGen/builtins.c' FAILED ******************** Exit Code: 1 Command Output (stderr): -- RUN: at line 1: /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitc hp/llvm-build/asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -o /usr/local/google/home/mitchp/llvm-build/asan-test/t ools/clang/test/CodeGen/Output/builtins.c.tmp /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c + /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitchp/llvm-build/ asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -o /usr/local/google/home/mitchp/llvm-build/asan-test/tools/clang/tes t/CodeGen/Output/builtins.c.tmp /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:52: warning: invalid conversion specifier ':' [-Wformat-in valid-specifier] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ~^ /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:76: warning: incomplete format specifier [-Wformat] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ^ 2 warnings generated. RUN: at line 2: not grep __builtin /usr/local/google/home/mitchp/llvm-build/asan-test/tools/clang/test/CodeGen/Output/builtins. c.tmp + not grep __builtin /usr/local/google/home/mitchp/llvm-build/asan-test/tools/clang/test/CodeGen/Output/builtins.c.tmp RUN: at line 3: /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitc hp/llvm-build/asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -triple x86_64-darwin-apple -o - /usr/local/google/home /mitchp/llvm/clang/test/CodeGen/builtins.c | /usr/local/google/home/mitchp/llvm-build/asan-test/bin/FileCheck /usr/local/google /home/mitchp/llvm/clang/test/CodeGen/builtins.c + /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitchp/llvm-build/ asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -triple x86_64-darwin-apple -o - /usr/local/google/home/mitchp/llvm/c lang/test/CodeGen/builtins.c + /usr/local/google/home/mitchp/llvm-build/asan-test/bin/FileCheck /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builti ns.c /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:52: warning: invalid conversion specifier ':' [-Wformat-in valid-specifier] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ~^ /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:76: warning: incomplete format specifier [-Wformat] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ^ 2 warnings generated. RUN: at line 4: /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitc hp/llvm-build/asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -triple x86_64-darwin-apple -fexperimental-new-constant -interpreter -o - /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c | /usr/local/google/home/mitchp/llvm-build/a san-test/bin/FileCheck /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c + /usr/local/google/home/mitchp/llvm-build/asan-test/bin/clang -cc1 -internal-isystem /usr/local/google/home/mitchp/llvm-build/ asan-test/lib/clang/19/include -nostdsysteminc -emit-llvm -triple x86_64-darwin-apple -fexperimental-new-constant-interpreter - o - /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c + /usr/local/google/home/mitchp/llvm-build/asan-test/bin/FileCheck /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builti ns.c /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:52: warning: invalid conversion specifier ':' [-Wformat-in valid-specifier] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ~^ /usr/local/google/home/mitchp/llvm/clang/test/CodeGen/builtins.c:772:76: warning: incomplete format specifier [-Wformat] 772 | __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data); | ^ 2 warnings generated. ================================================================= ==2982256==ERROR: LeakSanitizer: detected memory leaks Direct leak of 16 byte(s) in 1 object(s) allocated from: #0 0x5649a842c99d in operator new[](unsigned long) /usr/local/google/home/mitchp/llvm/compiler-rt/lib/asan/asan_new_delete. cpp:89:3 #1 0x5649aeb6ca36 in initialize /usr/local/google/home/mitchp/llvm/llvm/lib/Support/APFloat.cpp:882:25 #2 0x5649aeb6ca36 in llvm::detail::IEEEFloat::IEEEFloat(llvm::detail::IEEEFloat const&) /usr/local/google/home/mitchp/llvm/ llvm/lib/Support/APFloat.cpp:1171:3 #3 0x5649b7fc7960 in Storage /usr/local/google/home/mitchp/llvm/llvm/include/llvm/ADT/APFloat.h:855:20 #4 0x5649b7fc7960 in APFloat /usr/local/google/home/mitchp/llvm/llvm/include/llvm/ADT/APFloat.h:978:3 #5 0x5649b7fc7960 in Floating /usr/local/google/home/mitchp/llvm/clang/lib/AST/Interp/Floating.h:26:7 #6 0x5649b7fc7960 in push<clang::interp::Floating, clang::interp::Floating &> /usr/local/google/home/mitchp/llvm/clang/lib/ AST/Interp/InterpStack.h:36:35 #7 0x5649b7fc7960 in clang::interp::CastFP(clang::interp::InterpState&, clang::interp::CodePtr, llvm::fltSemantics const*, llvm::RoundingMode) /usr/local/google/home/mitchp/llvm/clang/lib/AST/Interp/Interp.h:2018:9 #8 0x5649b7e102a8 in clang::interp::Compiler<clang::interp::EvalEmitter>::VisitCastExpr(clang::CastExpr const*) /usr/local/ google/home/mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:287:18 #9 0x5649b7e12409 in clang::interp::Compiler<clang::interp::EvalEmitter>::visit(clang::Expr const*) /usr/local/google/home/ mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:3248:16 #10 0x5649b7e1e52b in clang::interp::Compiler<clang::interp::EvalEmitter>::VisitBuiltinCallExpr(clang::CallExpr const*) /us r/local/google/home/mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:3911:18 #11 0x5649b7e1c155 in clang::interp::Compiler<clang::interp::EvalEmitter>::VisitCallExpr(clang::CallExpr const*) /usr/local /google/home/mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:3930:12 #12 0x5649b7e12409 in clang::interp::Compiler<clang::interp::EvalEmitter>::visit(clang::Expr const*) /usr/local/google/home /mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:3248:16 #13 0x5649b7e45c6b in clang::interp::Compiler<clang::interp::EvalEmitter>::visitExpr(clang::Expr const*) /usr/local/google/ home/mitchp/llvm/clang/lib/AST/Interp/Compiler.cpp:3561:10 #14 0x5649b7f5fd30 in clang::interp::EvalEmitter::interpretExpr(clang::Expr const*, bool) /usr/local/google/home/mitchp/llv m/clang/lib/AST/Interp/EvalEmitter.cpp:47:14 #15 0x5649b7dc80e1 in clang::interp::Context::evaluateAsRValue(clang::interp::State&, clang::Expr const*, clang::APValue&) /usr/local/google/home/mitchp/llvm/clang/lib/AST/Interp/Context.cpp:49:16 #16 0x5649b7c0d5c2 in EvaluateAsRValue((anonymous namespace)::EvalInfo&, clang::Expr const*, clang::APValue&) /usr/local/go ogle/home/mitchp/llvm/clang/lib/AST/ExprConstant.cpp:15843:38 #17 0x5649b7c019eb in EvaluateAsRValue /usr/local/google/home/mitchp/llvm/clang/lib/AST/ExprConstant.cpp:15920:10 #18 0x5649b7c019eb in clang::Expr::EvaluateAsRValue(clang::Expr::EvalResult&, clang::ASTContext const&, bool) const /usr/lo cal/google/home/mitchp/llvm/clang/lib/AST/ExprConstant.cpp:15969:10 #19 0x5649afc2c67c in clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(clang::GlobalDecl, unsigned int, clang::CallExpr con st*, clang::CodeGen::ReturnValueSlot) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGBuiltin.cpp:2553:28 #20 0x5649af6897e7 in clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot ) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExpr.cpp:5468:12 #21 0x5649af6d1c41 in (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) /usr/local/google/hom e/mitchp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:597:20 #22 0x5649af699aab in (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) /usr/local/google/home/mitchp/llvm/clan g/lib/CodeGen/CGExprScalar.cpp:422:52 #23 0x5649af6ea1e1 in (anonymous namespace)::ScalarExprEmitter::VisitCastExpr(clang::CastExpr*) /usr/local/google/home/mitc hp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:2642:33 #24 0x5649af699838 in Visit /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:422:52 #25 0x5649af699838 in clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) /usr/local/google/home/mitc hp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:5497:8 #26 0x5649af62cd46 in clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExpr.cpp:230:24 #27 0x5649af62e4b8 in clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(clang::Expr const*) /usr/local/google/home/mitchp/ llvm/clang/lib/CodeGen/CGExpr.cpp:249:10 #28 0x5649af77f6d6 in clang::CodeGen::CodeGenFunction::EmitCallArg(clang::CodeGen::CallArgList&, clang::Expr const*, clang: :QualType) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGCall.cpp:4742:12 #29 0x5649af77cd28 in clang::CodeGen::CodeGenFunction::EmitCallArgs(clang::CodeGen::CallArgList&, clang::CodeGen::CodeGenFu nction::PrototypeWrapper, llvm::iterator_range<clang::Stmt::CastIterator<clang::Expr, clang::Expr const* const, clang::Stmt con st* const>>, clang::CodeGen::CodeGenFunction::AbstractCallee, unsigned int, clang::CodeGen::CodeGenFunction::EvaluationOrder) / usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGCall.cpp:4587:5 #30 0x5649af68ce0d in clang::CodeGen::CodeGenFunction::EmitCall(clang::QualType, clang::CodeGen::CGCallee const&, clang::Ca llExpr const*, clang::CodeGen::ReturnValueSlot, llvm::Value*) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExpr.cpp:5 986:3 #31 0x5649af689930 in clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot ) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExpr.cpp:5476:10 #32 0x5649af6d1c41 in (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) /usr/local/google/hom e/mitchp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:597:20 #33 0x5649af699838 in Visit /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:422:52 #34 0x5649af699838 in clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) /usr/local/google/home/mitc hp/llvm/clang/lib/CodeGen/CGExprScalar.cpp:5497:8 #35 0x5649af62ca67 in EmitAnyExpr /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGExpr.cpp:230:24 #36 0x5649af62ca67 in clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) /usr/local/google/home/mitchp/ll vm/clang/lib/CodeGen/CGExpr.cpp:205:18 #37 0x5649af482cba in clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) /us r/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGStmt.cpp:128:5 #38 0x5649af4a7bf9 in clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang ::CodeGen::AggValueSlot) /usr/local/google/home/mitchp/llvm/clang/lib/CodeGen/CGStmt.cpp:559:7 ``` https://github.com/llvm/llvm-project/pull/99895 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits