Commit Graph

559240 Commits

Author SHA1 Message Date
Alex Langford
45d5e7baba [lldb][NFC] Mark ValueObject library with NO_PLUGIN_DEPENDENCIES (#167794)
The ValueObject library doesn't actually depend on any plugins
currently, but it links against the C++ and ObjC language plugins. I
removed those and added NO_PLUGIN_DEPENDENCIES.

However, the build failed initally because the Commands library depends
on clangFrontend and it was previously getting it transitively through
ValueObject -> C++/ObjC Language -> clangFrontend. This makes the
dependency more explicit.
2025-11-12 16:19:31 -08:00
Alex Langford
897cc3ee42 [lldb][NFC] Remove plugin headers from Module (#167789)
As of e4a672bc17, lldbCore is free of plugins. These headers are no
longer needed.
2025-11-12 16:19:17 -08:00
Aiden Grossman
141c2bf0be [ASan][Windows] Add new instruction sizes (#167734)
These instructions show up when building asan in the premerge container
and do not on other bots, likely due to different standard library
versions.
2025-11-12 16:18:30 -08:00
Wenju He
fa417d78b1 [libclc] Fix floating-point __clc_atomic_store/exchange cast mismatch (#167625)
When pointer element type is casted to integer type, the stored value
should be casted to integer type to avoid type mistmatch. LLVM IR change
in function _Z18__clc_atomic_storePU3AS1Vffii:
    >   %5 = bitcast float %1 to i32   (New)
    <   %5 = fptosi float %1 to i32    (Old)
2025-11-13 08:03:49 +08:00
Stanislav Mekhanoshin
500e6d8b28 [AMDGPU] Change encoding of gfx1250 ld_scale (#167777)
The unused field src2 is now encoded to vgpr0 accoring to the
latest guidelines.

Fixes: SWDEV-565846
2025-11-12 16:03:09 -08:00
Shreeyash Pandey
8c0dadf7b3 [libc] allow UnitTest suite to be compiled on darwin (#166062)
ExecuteFunctionUnix.cpp which is guarded by this check should reliably
work
on darwin as it only uses POSIX API - nothing specific to linux.
2025-11-12 18:57:52 -05:00
higher-performance
18d4da2422 Add the ability to exempt callees from the misc-coroutine-hostile-raii clang-tidy check (#167778) 2025-11-12 23:51:42 +00:00
David Tellenbach
a01a921004 [ARM] Prevent stack argument overwrite during tail calls (#166492)
For tail-calls we want to re-use the caller stack-frame and potentially
need to copy stack arguments.

For large stack arguments, such as by-val structs, this can lead to
overwriting incoming stack arguments when preparing outgoing ones by
copying them. E.g., in cases like

        %"struct.s1" = type { [19 x i32] }

        define void @f0(ptr byval(%"struct.s1") %0, ptr %1) {
        tail call  void @f1(ptr %1, ptr byval(%"struct.s1") %0)
        ret void
        }

        declare  void @f1(ptr, ptr)

that swap arguments, the last bytes of %0 are on the stack, followed by
%1. To prepare the outgoing arguments, %0 needs to be copied and %1
needs to be loaded into r0. However, currently the copy of %0
overwrites the location of %1, resulting in loading garbage into r0.

We fix that by forcing the load to the pointer stack argument to happen
before the copy.
2025-11-12 23:38:48 +00:00
Henrik G. Olsson
dbf77e4f5b [utils] revamp options controlling lit's output (#167192)
Lit has a number of options controlling the output, but they don't
compose very well. This breaks the existing options down into smaller,
orthogonal options, and makes the existing options aliases of the new
ones.

This introduces the following options:
  --test-output {off,failed,all}
  --print-result-after {off,failed,all}
  --diagnostic-level {error,warning,note}
  --terse-summary
  --no-terse-summary
  --progress-bar (mirroring --no-progress-bar)

--test-output and --print-result-after are not entirely orthogonal, as
'--test-output X' requires that --print-result-after is set to at least
X, and implicitly does so if it isn't already. Conversely,
'--print-result-after Y' requires that --test-output is at most Y, and
implicitly lowers if it is higher. This means that the following
invocations have different end results, as they are applied in order:
  '--test-output all --print-result-after off'
  '--print-result-after off --test-output all'

The following existing options are now aliases as follows:
  -q, --quiet
    '--diagnostic-level error --test-output off --terse-summary'
  -s, --succinct
    '--progress-bar --print-result-after failed'
  -v, --verbose
    '--test-output failed'
  -a, --show-all
    '--test-output all'

These where all completely separate options and would override each
other in ad-hoc ways, with no regard to the order they were given.

This fixes https://github.com/llvm/llvm-project/issues/106643 This is
based on the RFC

https://discourse.llvm.org/t/rfc-new-command-line-options-for-controlling-llvm-lit-output/
with the addition of --terse-summary, which was a behaviour of -q that
was not captured by the original RFC. This also diverges from the RFC in
that --debug is NOT folded into --diagnostic-level, because it can be
useful to debug any configuration, including those specifying
--diagnostic-level.

Example combination that is possible now but wasn't before:
'--diagnostic-level error --test-output all --progress-bar' Another use
case is aliases, where you can alias e.g:
  alias lit=llvm-lit --quiet
but still override the specified default options.
2025-11-12 15:34:21 -08:00
Stanislav Mekhanoshin
4b05581bae [AMDGPU] Regenerate gfx1250 wmma MC test. NFC (#167773) 2025-11-12 15:18:57 -08:00
Utkarsh Saxena
342bf57364 [LifetimeSafety] Ignore parentheses when tracking expressions (#167245)
Add support for handling parenthesized expressions in lifetime safety
analysis.

Modified the `OriginManager::get` method to ignore parentheses when
retrieving origins by recursively calling itself on the unparenthesized
expression. This ensures that expressions with extra parentheses are
properly analyzed for lifetime safety issues.
2025-11-13 00:13:57 +01:00
Matt Arsenault
2e489f77ba CodeGen: Fix CodeView crashes with empty llvm.dbg.cu (#163286) 2025-11-12 14:59:42 -08:00
Valentin Clement (バレンタイン クレメン)
bdf3f24ec0 [mlir][NVVM] Add support for barrier0-reduction operation (#167036)
Add support for `nvvm.barrier0.[popc|and|or]` operation. It is added as
a separate operation since `Barrier0Op` has no result.

https://docs.nvidia.com/cuda/nvvm-ir-spec/#barrier-and-memory-fence

This will be used in CUDA Fortran lowering: 

49f55f4991/flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp (L1081)

And could be used later in the CUDA C/C++ with CIR

49f55f4991/clang/lib/Headers/__clang_cuda_device_functions.h (L524)

---------

Co-authored-by: Guray Ozen <guray.ozen@gmail.com>
2025-11-12 14:56:10 -08:00
Florian Hahn
b6bcfdea40 [VPlan] Get opcode & type from recipe in adjustRecipesForReduction (NFC)
Replace direct access to underlying IR instructions with VPlan-level
equivalents, i.e. VPTypeAnalysis and pattern matching on the recipe.

Removes a few uses of accessing underlying IR.
2025-11-12 22:37:15 +00:00
Jan Svoboda
71763a5146 [clang] Extract CompilerInvocation::visitPaths() (#167420)
This PR extracts visitation of paths stored in `CompilerInvocation` into
a member function. We already have a second copy of this downstream, and
I'm in the need of adding a third one.
2025-11-12 14:20:53 -08:00
Florian Hahn
53a65ba6b9 [VPlan] Don't look up recipe for IV step via RecipeBuilder. (NFC)
Directly update induction increments with step value created for wide
inductions in createWidenInductionRecipes, which does not require
looking up via RecipeBuilder.
2025-11-12 22:08:56 +00:00
Nicolai Hähnle
66366599a9 CodeGen/AMDGPU: Allow 3-address conversion of bundled instructions (#166213)
This is in preparation for future changes in AMDGPU that will make more
substantial use of bundles pre-RA. For now, simply test this with
degenerate (single-instruction) bundles.
2025-11-12 22:04:46 +00:00
Krzysztof Parzyszek
66da12ae69 [flang][OpenMP] Delete include of unused header, NFC (#167762) 2025-11-12 15:45:37 -06:00
Andres-Salamanca
cf9cb542f2 [CIR] Emit promise declaration in coroutine (#166683)
This PR adds support for emitting the promise declaration in coroutines
and obtaining the `get_return_object()`.
2025-11-12 16:29:11 -05:00
Andy Kaylor
260df80fc4 [CIR] Handle scalar DerivedToBase cast expressions (#167370)
This adds handling in CIR's ScalarExprEmitter for CK_DerivedToBase cast
expressions.
2025-11-12 13:19:47 -08:00
Nathan Gauër
1d2429b5ac Revert "[HLSL] Rework semantic handling as attributes #166796" (#167759)
Reverting 2 commits from the mainline. The origin of the issue, and the
tentative fix-forward.
2025-11-12 21:19:34 +00:00
Akira Hatanaka
9361113ffc [CodeGen] Remove the check that allowed non-POD compound literals to be directly evaluated into the destination even when it might alias the source (#167344)
Evaluate all aggregate compound literals into a temporary and then copy
it to the destination if aliasing is possible.

This fixes a latent issue exposed by #154490, where evaluating the RHS
directly into the destination could ignore potential aliasing.

rdar://164094548
2025-11-12 13:16:29 -08:00
Jonathan Thackray
603ba84fb4 [AArch64][llvm] Add instructions for FEAT_MOPS_GO (#164913)
Add the following `FEAT_MOPS_GO` instructions:
  * `SETGOP`, `SETGOM`, `SETGOE`
  * `SETGOPN`, `SETGOMN`, `SETGOEN`
  * `SETGOPT`, `SETGOMT`, `SETGOET`
  * `SETGOPTN`, `SETGOMTN`, `SETGOETN`

as blogged about here:
*
https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/future-architecture-technologies-poe2-and-vmte

and as documented here:
*
https://developer.arm.com/documentation/109697/2025_09/Future-Architecture-Technologies
2025-11-12 21:14:30 +00:00
Matt Arsenault
dfdada1b78 CodeGen: Remove target hook for terminal rule (#165962)
Enables the terminal rule for remaining targets
2025-11-12 21:12:19 +00:00
Alex Langford
6806349d69 [lldb] Split up shared cache objc metadata extractor body (#167761)
After my previous change (#167579), the string exceeded 16380
single-byte characters. MSVC did not like this, so I'm splitting it up
into two strings.
2025-11-12 13:08:24 -08:00
Aiden Grossman
919bff795d [Github] Make bazel workflow run all tests (#167576)
Now that the caching seems to be working reasonably well, enable
building and testing the entirety of the project to actually catch most
of the build configuration issues that this workflow is intended to
catch.
2025-11-12 13:02:22 -08:00
Sergei Barannikov
47cef55390 [AsmPrinter] Replace improper use of Register with MCRegUnit (NFC) (#167682) 2025-11-12 23:45:06 +03:00
Hendrik Hübner
a799a8e9f9 [CIR] Cast record size to uint64 to prevent overflow (#167525)
`llvm::TypeSize` uses 64bit integers, so we should cast the `recordSize`
before multiplying by 8 to prevent an overflow.
2025-11-12 12:27:01 -08:00
Med Ismail Bennani
e5e9c3b4f2 [libunwind] Fix build error because of wrong register size (#167743) 2025-11-12 12:21:32 -08:00
Matt Arsenault
782759b757 DAG: Use poison when widening build_vector (#167631)
Test changes are mostly noise. There are a few improvements and a few
regressions.
2025-11-12 20:17:41 +00:00
Aiden Grossman
0c0c1a7ae4 [X86][NewPM] Port DynAllocaExpander to New PM
No tests modified as there are none that explicitly stop at
DynAllocaExpander, and we do not have enough of a pipeline to run those
yet anyways.

Reviewers: phoebewang, RKSimon, paperchalice, arsenm

Reviewed By: arsenm

Pull Request: https://github.com/llvm/llvm-project/pull/167740
2025-11-12 12:00:42 -08:00
Michael Liao
cc54ee854f [clang][HLSL] Fix crash issue due to Twine usage
- Dangling pointer (from std::string) is created and trigger crash on
  some Linux distributions under different build types.
2025-11-12 14:55:15 -05:00
Matt Arsenault
0385a182da DAG: exp opcodes cannotBeOrderedNegativeFP (#167604) 2025-11-12 19:50:46 +00:00
Nikolas Klauser
43ca08da1a [libc++] Simplify the implementation of aligned_storage (#162459) 2025-11-12 20:38:52 +01:00
Eugene Epshteyn
e7bccc7ceb [flang] Fixed regression in copy-in/copy-out (#161259)
Fixed the polymprphic check for copy-in/copy-out, added regression
tests.

Changed MayNeedCopy() to return std::optional<bool> and renamed it to
ActualArgNeedsCopy(). This function now returns true/false when it's
known that actual arguments needs copy in/out, or std::nullopt to
signify that it's now known, whether copy in/out is needed.

Fixes #159149
2025-11-12 14:37:27 -05:00
Petr Hosek
242a6cbc5f [libc] Handle the unknown default target in CMake (#115122)
When the backend for the host target isn't enabled, Clang would report
the default target as `unknown`. This currently breaks the libc CMake
build, but shouldn't in the case where we're cross-compiling since we're
given an explicit target and the default one isn't being used.
2025-11-12 11:36:54 -08:00
Aiden Grossman
28dbbba6c3 [bazel] Fix LLDB :Host Build (#167711)
On some systems (probably those with a more recent clang), building
:Host errors out with a layering check violation due to the histedit.h
system include. Opt it out of layering checks for now, similar to other
targets that depend on non standard library system includes.
2025-11-12 19:30:13 +00:00
Ivan Butygin
0a34d37365 [mlir][memref] Remove invalid extract_aligned_pointer_as_index folding in ExpandStridedMetadata (#167615)
`RewriteExtractAlignedPointerAsIndexOfViewLikeOp` tries to propagate
`extract_aligned_pointer_as_index` through the view ops.

`ViewLikeOpInterface` by itself doesn't guarantee to preserve the base
pointer and `memref.view` is one such example, so limit pattern to a few
specific ops.
2025-11-12 22:29:56 +03:00
Michael Buch
87da62028e [lldb][ClangExpressionParser] Clean up ownership of members in ClangDiagnosticManagerAdapter (#167731)
This aligns `ClangDiagnosticManagerAdapter` with how we set up the
diagnostics in `ClangModulesDeclVendor`. We fixed lifetime issues around
the same kind of setup here:
https://github.com/llvm/llvm-project/pull/167724

This class didn't suffer from the same lifetime issue because it used
`shared_ptr`s. So the stream wasn't freed before
`~TextDiagnosticPrinter` accessing it. But that begged the question of
why these are `shared_ptr`s in the first place. This patch makes these
`unique_ptr`s and fixes the destruction order that would now be an
issue.
2025-11-12 19:02:25 +00:00
Alex Langford
280d0df211 [lldb] Remove test that disassembles all of Foundation (#167596)
This test attempts to disassemble every Code symbol in Foundation.
There's no need to disassemble every code symbol and this certainly does
not scale. In some cases, this test can take multiple minutes to run or
even time out.
2025-11-12 10:58:05 -08:00
Tuomas Kärnä
7f4a3a98a2 [MLIR][XeGPU][TransformOps] Add convert_layout op (#167342)
Adds `transform.xegpu.convert_layout` transform op that inserts an
`xegpu.convert_layout` op for a given `Value`.
2025-11-12 18:57:51 +00:00
Alex Langford
ec4207baed [lldb] Adapt shared cache ObjC class metadata extraction for long term growth (#167579)
On Apple's platforms, the size of the shared cache grows steadily. As it
grows, so does its list of ObjC classes. LLDB currently accepts an upper
limit to the number of classes when it extracts the class information.
Every few years we will hit the limit and increase the upper limit of
classes.

This approach is fundamentally unsustainable. On top of needing to
manually adjust the number every few years, our current method requires
us to allocate memory in the inferior process. On macOS this is usually
not a problem, but on embedded devices there is usually a limit to how
much memory a process can allocate before they are killed by the OS.

My solution involves running the metadata extraction logic multiple
times. I've added a new parameter to our utility function `start_idx`
that keeps track of where it stopped during the previous run so that it
may pick up again where it stopped.

rdar://91398396
2025-11-12 10:52:26 -08:00
Matt Arsenault
201a461bb9 AArch64: Add baseline test for treating exp as known positive (#167603) 2025-11-12 10:46:23 -08:00
Aiden Grossman
4d772de152 [X86] Remove Redundant Default Destructor 2025-11-12 18:42:57 +00:00
Bangtian Liu
a5a78d0bb4 [mlir][linalg][python] Add Python Bindings for Inferring Contraction Dimensions from Affine Maps (#167587)
This PR exposes `linalg::inferContractionDims(ArrayRef<AffineMap>)` to
Python, allowing users to infer contraction dimensions (batch/m/n/k)
directly from a list of affine maps without needing an operation.

---------

Signed-off-by: Bangtian Liu <liubangtian@gmail.com>
2025-11-12 13:35:04 -05:00
Andy Kaylor
a22834a4d2 [CIR] Handle null base class initialization (#167023)
This adds handling for null base class initialization, but only for the
trivial case where the class is empty. This also moves
emitCXXConstructExpr to CIRGenExprCXX.cpp for consistency with classic
codegen and the incubator repo.
2025-11-12 10:13:36 -08:00
Matt Arsenault
24be0ba39b DAG: Fix assert on nofpclass call with aggregate return (#167725) 2025-11-12 18:12:20 +00:00
Dhruva Chakrabarti
58ac95db60 [AMDGPU] Avoid changing minOccupancy if unclustered schedule was not run for any region. (#162025)
During init of unclustered schedule stage, minOccupancy may be
temporarily increased. But subsequently, if none of the regions are
scheduled because they don't meet the conditions of initGCNRegion,
minOccupancy remains incorrectly set. This patch avoids this
incorrectness by delaying the change of minOccupancy until a region is
about to be scheduled.
2025-11-12 10:11:22 -08:00
Craig Topper
830f690982 [Docs] Fix typo in vp.load.ff intrinsic documentation. NFC (#167721) 2025-11-12 10:01:37 -08:00
Michael Buch
b9eb974e7e [lldb][ClangModulesDeclVendor] Fix use-after-free of diagnostics stream (#167724)
This got exposed by `09262656f32ab3f2e1d82e5342ba37eecac52522`.

The underlying stream of `m_os` is referenced by the `TextDiagnostic`
member of `TextDiagnosticPrinter`. It got turned into a
`llvm::formatted_raw_ostream` in the commit above. When
`~TextDiagnosticPrinter` (and thus `~TextDiagnostic`) is invoked, we now
call `~formatted_raw_ostream`, which tries to access the underlying
stream. But `m_os` was already deleted because it is earlier in the
order of destruction in `TextDiagnosticPrinter`. Move the `m_os` member
before the `TextDiagnosticPrinter` to avoid a use-after-free.

Drive-by:
* Also move the `m_output` member which the `m_os` holds a reference to.
The fact it's a reference indicates the expectation is most likely that
the string outlives the stream.

The ASAN macOS bot is currently failing with this:
```
08:15:39  =================================================================
08:15:39  ==61103==ERROR: AddressSanitizer: heap-use-after-free on address 0x60600012cf40 at pc 0x00012140d304 bp 0x00016eecc850 sp 0x00016eecc848
08:15:39  READ of size 8 at 0x60600012cf40 thread T0
08:15:39      #0 0x00012140d300 in llvm::formatted_raw_ostream::releaseStream() FormattedStream.h:205
08:15:39      #1 0x00012140d3a4 in llvm::formatted_raw_ostream::~formatted_raw_ostream() FormattedStream.h:145
08:15:39      #2 0x00012604abf8 in clang::TextDiagnostic::~TextDiagnostic() TextDiagnostic.cpp:721
08:15:39      #3 0x00012605dc80 in clang::TextDiagnosticPrinter::~TextDiagnosticPrinter() TextDiagnosticPrinter.cpp:30
08:15:39      #4 0x00012605dd5c in clang::TextDiagnosticPrinter::~TextDiagnosticPrinter() TextDiagnosticPrinter.cpp:27
08:15:39      #5 0x0001231fb210 in (anonymous namespace)::StoringDiagnosticConsumer::~StoringDiagnosticConsumer() ClangModulesDeclVendor.cpp:47
08:15:39      #6 0x0001231fb3bc in (anonymous namespace)::StoringDiagnosticConsumer::~StoringDiagnosticConsumer() ClangModulesDeclVendor.cpp:47
08:15:39      #7 0x000129aa9d70 in clang::DiagnosticsEngine::~DiagnosticsEngine() Diagnostic.cpp:91
08:15:39      #8 0x0001230436b8 in llvm::RefCountedBase<clang::DiagnosticsEngine>::Release() const IntrusiveRefCntPtr.h:103
08:15:39      #9 0x0001231fe6c8 in (anonymous namespace)::ClangModulesDeclVendorImpl::~ClangModulesDeclVendorImpl() ClangModulesDeclVendor.cpp:93
08:15:39      #10 0x0001231fe858 in (anonymous namespace)::ClangModulesDeclVendorImpl::~ClangModulesDeclVendorImpl() ClangModulesDeclVendor.cpp:93
...
08:15:39
08:15:39  0x60600012cf40 is located 32 bytes inside of 56-byte region [0x60600012cf20,0x60600012cf58)
08:15:39  freed by thread T0 here:
08:15:39      #0 0x0001018abb88 in _ZdlPv+0x74 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4bb88)
08:15:39      #1 0x0001231fb1c0 in (anonymous namespace)::StoringDiagnosticConsumer::~StoringDiagnosticConsumer() ClangModulesDeclVendor.cpp:47
08:15:39      #2 0x0001231fb3bc in (anonymous namespace)::StoringDiagnosticConsumer::~StoringDiagnosticConsumer() ClangModulesDeclVendor.cpp:47
08:15:39      #3 0x000129aa9d70 in clang::DiagnosticsEngine::~DiagnosticsEngine() Diagnostic.cpp:91
08:15:39      #4 0x0001230436b8 in llvm::RefCountedBase<clang::DiagnosticsEngine>::Release() const IntrusiveRefCntPtr.h:103
08:15:39      #5 0x0001231fe6c8 in (anonymous namespace)::ClangModulesDeclVendorImpl::~ClangModulesDeclVendorImpl() ClangModulesDeclVendor.cpp:93
08:15:39      #6 0x0001231fe858 in (anonymous namespace)::ClangModulesDeclVendorImpl::~ClangModulesDeclVendorImpl() ClangModulesDeclVendor.cpp:93
...
08:15:39
08:15:39  previously allocated by thread T0 here:
08:15:39      #0 0x0001018ab760 in _Znwm+0x74 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x4b760)
08:15:39      #1 0x0001231f8dec in lldb_private::ClangModulesDeclVendor::Create(lldb_private::Target&) ClangModulesDeclVendor.cpp:732
08:15:39      #2 0x00012320af58 in lldb_private::ClangPersistentVariables::GetClangModulesDeclVendor() ClangPersistentVariables.cpp:124
08:15:39      #3 0x0001232111f0 in lldb_private::ClangUserExpression::PrepareForParsing(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, bool) ClangUserExpression.cpp:536
08:15:39      #4 0x000123213790 in lldb_private::ClangUserExpression::Parse(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) ClangUserExpression.cpp:647
08:15:39      #5 0x00012032b258 in lldb_private::UserExpression::Evaluate(lldb_private::ExecutionContext&, lldb_private::EvaluateExpressionOptions const&, llvm::StringRef, llvm::StringRef, std::__1::shared_ptr<lldb_private::ValueObject>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, lldb_private::ValueObject*) UserExpression.cpp:280
08:15:39      #6 0x000120724010 in lldb_private::Target::EvaluateExpression(llvm::StringRef, lldb_private::ExecutionContextScope*, std::__1::shared_ptr<lldb_private::ValueObject>&, lldb_private::EvaluateExpressionOptions const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, lldb_private::ValueObject*) Target.cpp:2905
08:15:39      #7 0x00011fc7bde0 in lldb::SBTarget::EvaluateExpression(char const*, lldb::SBExpressionOptions const&) SBTarget.cpp:2305
08:15:39  ==61103==ABORTING
...
```
2025-11-12 17:57:07 +00:00