[clang] fix crash with c-style casts involving dependent member-pointer types (#194696)
A dependent member-pointer type doesn't necessarily have a class
declaration.
This simplifies the check performed in a helper for diagnosing a cast
which removes qualifiers, so it doesn't rely on this assumption.
This fixes a regression introduced in
https://github.com/llvm/llvm-project/pull/132401, which landed in the
last release, and this will be back ported, so no release notes.
Fixes #194524
(cherry picked from commit c147ccadae917314a7d46510936e5c275e14fc18)
[lldb] Gracefully handle sockets being unavailable (#194712)
Gracefully handle sockets being unavailable, for example because the
test suite is running in a sandboxed environment where you're not
allowed to call bind.
[SandboxIR] Implement getPointerOperandType() and getPointerAddressSpace() (#194472)
This patch implements `getPointerOperandType()` and
`getPointerAddressSpace()` member functions for both `LoadInst` and
`StoreInst`, mirroring LLVM IR.
[WebAssembly][GlobalISel] Migrate to extended LLT (#193047)
Moves Wasm GISel to use the the new extended LLTs added by #155107.
Extended LLTs have (optional) information about whether a particular
scalar is integer vs floating-point. This is a big win for Wasm, since
we can avoid a lot of guess work, and map LLT i32, i64, f32, and f64
directly to their Wasm counterparts.
To take full advantage of this, RegBankSelect has been automated,
iterating over all operands and mapping typed LLTs to their appropriate
register bank.
[CIR] __builtin_source_location lowering for constant (#194505)
This handles the UnnamedGlobalConstantDecl lowering, which is only used
for the source-location object. This uses similar logic to the classic
compiler, so we end up with roughly the same IR.
There is a slight difference in how we choose which strings to uniquify
(preexisting) and how we name them/name duplicates, but it isn't really
relevant to the text itself.
[bazel] Prevent bazel from scanning .git metadata (#194745)
This prevents race condition when git triggers its GC during a bazel
build. Bazel build fails as follows in that case:
```
Loading: 0 packages loaded
ERROR: Failed to list directory contents, for .git/objects/05, skipping: /var/lib/buildkite-agent/llvm-project-bazelbot/.git/objects/05 (No such file or directory)
ERROR: Target parsing failed due to unexpected exception: /var/lib/buildkite-agent/llvm-project-bazelbot/.git/objects/05 (No such file or directory)
Loading: 0 packages loaded
```
[git] [LLVM utils] Require `pyjwt[crypto]==2.12.1`, `cryptography==47.0.0`, and `urllib3==2.6.3` (#194707)
**Context:**
The MSVC team (👋 ) consumes the LLVM repo and is receiving security
alerts due to the git utils `requirements.txt` file requesting
transitive dependencies with known CVEs.
Namely, we're looking at the following CVEs:
- https://nvd.nist.gov/vuln/detail/CVE-2026-32597, fixed in
`pyjwt>=2.12.0`
- https://nvd.nist.gov/vuln/detail/CVE-2026-26007, fixed in
`cryptography>=46.0.5`
- https://nvd.nist.gov/vuln/detail/CVE-2026-21441, fixed in
`urllib3>=2.6.3`
**This PR** aims to address this re-computing the `requirements.txt` for
those dependencies, via:
[496 lines not shown]
[WebAssembly] Print BB names better for CFGStackify debugging (#194187)
Currently, if a MBB does not have a corresponding original bitcode BB,
because it was generated later in the backend,
`MachineBasicBlock::getName()` returns an empty string. This adds
`getBBName` method, which prints BB names in the format of
`bb.3.catch.start` in case the original BB name is `catch.start`, and
just `bb.3` when there is no matching original BB, and uses it for
`LLVM_DEBUG` statements.
[SLP] Allow strided memory operations with lengths equal to MinProfitableStridedOps (#194506)
Currently we've excluded chains with length equal to `MinProfitableStridedOps`, this change matches how we have defined these knobs.
[libc++] Refactor the SPEC benchmark runner (#194737)
This makes it less convoluted and more robust to when substeps fail. The
previous incarnation had too much logic cramed into the Python gen test,
which is quite difficult to understand.
palemoon: Update to 34.2.1
Many security issues were addressed, including potential crash
scenarios and code correctness issues. As a summary: 50 potential
vulnerabilities were found applicable and fixed, 20 issues had DiD
code changes applied, and 4 were already mitigated by us before being
reported. Of the reported vulnerabilities, 270 were not applicable to
our code (with the vast majority pertaining to e10s/multi-process
browser architecture) and 6 low-impact ones were marked for further
investigation at a later time.
[lldb] Define breakpoint location "." to mean the location(s) at which the current thread is stopped (#194272)
Adds `.` as a new `breakpt-id` syntax. Users can specify `.` to mean the breakpoint
location(s) that caused the current thread to stop.
I selected `.` to mean the current breakpoint locations for two reasons. In a shells,
period means <ins>current</ins> directory. In prose, a period is a <ins>stop</ins>.
My workflow often starts with multiple breakpoint locations, such as with regex
breakpoints, or basename breakpoints for overloaded/overridden names. As locations are
hit, I realize which locations are no longer needed. This new syntax makes it quick and
easy to disable the currently stopped location(s).
Another use case for this is to quickly repeat commands for the current location:
``` break com add -o 'p someVar' . ```
Usage example:
[15 lines not shown]
Remove truenas-initrd.py and now dead dependencies
This commit removes local copy of truenas-initrd.py script, which
is now provided by https://github.com/truenas/upgrade_pyutils.
Since this script was the only consumer of the rootfs util to
toggle readonly property on filesystem it is also removed.
(cherry picked from commit 3d84369e87c7c6636cf9b96c74135dffa6812ee8)
NAS-140816 / 27.0.0-BETA.1 / Remove truenas-initrd.py and now dead dependencies (#18830)
This commit removes local copy of truenas-initrd.py script, which is now
provided by https://github.com/truenas/upgrade_pyutils.
Since this script was the only consumer of the rootfs util to toggle
readonly property on filesystem it is also removed.
[AMDGPU][MIRFormatter] Printer & parser for S_WAITCNT human-readable mask (#193895)
This patch implements a printer and parser for the S_WAITCNT mask. It
prints the mask in a human-readable format, showing the counter values
like `Vmcnt_<NUM>_Expcnt_<NUM>_Lgkmcnt_<NUM>`.
The format matches the printing style of S_WAITCNT_DEPCTR. For example:
```
S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
S_WAITCNT .Expcnt_0
S_WAITCNT .AllOff
```
Counters at their maximum value (meaning "don't wait") are omitted. When
all counters are at max, `.AllOff` is printed.
Co-Authored-By: Claude Opus 4 <noreply at anthropic.com>
[HLSL] Make load methods take const attribute (#193858)
Previously, HLSL shaders that declare a local resource const, cannot use
the `Load` method, since it is not attributed with const.
Load does not change a resource, it is a read-only operation, so the
method should be marked const.
This PR changes the methods so that they are marked const.
Fixes https://github.com/llvm/llvm-project/issues/192557
Assisted by: Github Copilot
[clang][NFC] Mark CWG2810 as implemented and add a test (#194683)
CWG2810 (https://cplusplus.github.io/CWG/issues/2810.html) just removes
some wording that could be misinterpreted as saying "a compiler must not
emit any warnings in uninstantiated templates". Clang has never
misinterpreted it that way, so we don't need to do anything here.