[SSAF][UnsafeBufferUsage] Make UnsafeBufferUsageExtractor a registered ASTConsumer (#191931)
- Removed UnsafeBufferUsageExtractor.h
- Registered UnsafeBufferUsageExtractor
- Changed unit tests to enable the extractor with
`HandleTranslationUnit`
- Fixed bugs in `UnsafeBufferUsageExtractor::HandleTranslationUnit`
---------
Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
[APINotes][unsafe-buffer-usage] Add [[clang::unsafe_buffer_usage]] support in APINotes (#189775)
Support the ``[[clang::unsafe_buffer_usage]]`` attribute in APINotes,
e.g.,
```
Functions:
- Name: myUnsafeFunction
UnsafeBufferUsage: true
```
rdar://171859135
[ROCDL] Add dot intrinsics to rocdl (#193129)
This patch adds dot intrinsic support to the rocdl dialect. Having these
(inc. follow up `amdgpu` wrapper) as first class citizens in MLIR will
allow us to lower thread local reductions involving `<=16bit` data more
effectively. This is in line with the spirit of `dot` intrinsic support
wrt existing edge dialects (`x86`, `nvvm`, `spirv`).
Assisted by: Claude
---------
Signed-off-by: Eric Feng <Eric.Feng at amd.com>
[lldb][test] Add support for building Wasm test inferiors (#192872)
This PR adds support for building the test inferiors to WebAssembly.
Specifically, it allows you to configure a sysroot and resource dir
(pointing at the WASI SDK). The Wasm runtime can be configured through
the `LLDB_TEST_USER_ARGS`.
```
LLDB_TEST_TRIPLE:STRING=wasm32-wasip1
LLDB_TEST_SYSROOT:PATH=/path/to/wasi-sdk-32.0-arm64-macos/share/wasi-sysroot
LLDB_TEST_RESOURCE_DIR:PATH=/path/to/wasi-sdk-32.0-arm64-macos/lib/clang/22/
LLDB_TEST_USER_ARGS:STRING=--setting;platform.plugin.wasm.runtime-path=/path/to/iwasm;--setting;platform.plugin.wasm.runtime-args=--heap-size=1048576;--setting;platform.plugin.wasm.port-arg=-g=
```
With the configuration listed above I was able to confirm that I could
build and run a handful of C and C++ tests. To set expectations: lots of
tests are unsupported because they rely on things not available in Wasm
(e.g. shared libraries) or they use features currently unsupported in
LLDB (most notably: expression evaluation).
[clang] Get the directory identity from `ModuleCache` instead of `FileManager` (#193070)
Using `FileManager`'s caching and deduplication functionality for
assigning identity to the module cache is handy, but it relies on two
assumptions:
* the rest of the compiler consistently calls
`FileManager::getOptionalDirectoryRef()` with `/*CacheFailure=*/false`
for the module cache path,
* the VFS is not caching failed stats for the module cache path.
This PR implements this functionality in the `ModuleCache` interface,
which is conceptually the right place for it. This PR enables us to land
the VFS simplifications in
https://github.com/llvm/llvm-project/pull/190843.
[clang] implement CWG2064: ignore value dependence for decltype
The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.
This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.
This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.
Fixes #8740
Fixes #61818
Fixes #190388
Fix PREF64 option corruption if DNSSL is also set
On octeon (but not amd64) setting both a NAT64 prefix and a search domain
causes the former ICMPv6 option to be corrupted due to how it is added last
in the Router Advertisement packet, following too much zero padding.
Bytes after the DNSSL option are zeroed up the next 8-byte boundary to
align options inside the packet.
Instead of checking alignment of the pointer address somewhere inside the
packet buffer that lives on the stack, which is thus architecture specific,
use their offset, i.e. see how many bytes were already written, in order to
zero-fill what is left between last search domain and next 8-byte boundary.
This makes RAs byte-identical between octeon and amd64 and prevents rad(8)
from sending the kind of invalid packets that clients like slaacd(8) and
gelatod(8) (from ports) need 029_v6daemons for.
OK florian
[clang] Exclude trailing colons from param command names (#192598)
Doxygen accepts param names with trailing colons and they are omitted in
documentation. The comment parser includes the colon in the param name
thus including it in AST dumps. This patch removes a trailing colon and
adds a test for it.
Fixes #185378