17689 posix_spawn() could avoid copying data and stopping threads
18160 posix_spawnp() evaluates its default search path too late
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Reviewed by: Dan Cross <cross at oxidecomputer.com>
Approved by: Dan McDonald <danmcd at edgecast.io>
[clang][win] MSVC-compat: Use `__global_delete` wrapper in deleting destructors instead of directly referencing `::operator delete` (#188372)
When Clang emits scalar/vector deleting destructors for classes with a
class-level `operator delete`, it generates a conditional dispatch that
can call either the class-level or global `::operator delete`. The
global path directly referenced `::operator delete`, causing `LNK2001`
linker errors in environments where no global `::operator delete`
exists.
MSVC handles this by calling `__global_delete` (and
`__global_array_delete` for vector deletes) - this is a compiler
generated function that is ONLY defined if there is a direct call to
global `::operator delete` for type with non-trivial destructors.
Additionally, it always emits an empty `__empty_global_delete` and uses
`/ALTERNATIVENAME` linker arg to default `__global_delete` (and
`__global_array_delete`) to `__empty_global_delete` if there is NEVER an
delete operator call that would triffer the body to be emitted (thus the
empty function should never be called).
[2 lines not shown]
[Clang] [NFC] Use ScopeFlags for expansion statement scopes (#208849)
Previously, we were using a separate `bool` member in `Scope` for this
because we ran out of bits in `ScopeFlags`. #198436 recently freed up a
bit for this, so switch to using it instead.
Fixes #207774.
[SSAF][PinnedPointers] Add pointer parameters of 'main' as pinned pointers
Similar to some pointer entities of operator new/delete overload
functions, pointer type parameters of the main function shall also
retain its type during clang-reforge transformation.
rdar://179151882
[Flang][OpenMP] Support mapping of zero-sized arrays (#208133)
Whilst there is no data in theory to map with a zero sized array, the
Fortran OpenMP specification considers the case of a zero sized array
being mapped to device as the data being present on device. This
includes both the data and the descriptor, and it should fundamentlaly
work as a zero-sized array would on device with the respective Fortran
functions for presence and size checking etc.
We can't actually map a nullptr to device and expect it to be present in
current OpenMP (for good reason), however, thankfully, a zero sized
array isn't actually a nullptr, it is a descriptor contianing an
allocated 1-byte of data. So, we can map this to device, alongside the
descriptor and then the zero sized array is correctlly on device for all
intents and purposes. This case is notably different from a
non-allocated or non-zero sized array so we can do this without shooting
ourselves in the foot.
[NVPTX] Expand fp/int conversions involving integers wider than 64 bits (#201679)
NVPTX does not support direct PTX conversion instructions between
floating point types and integer types wider than 64 bits.
Previously, such conversions could reach instruction selection and fail
with an _unsupported library call operation_ error.
Reproducer on godbolt: https://godbolt.org/z/G6Yr9cE1d
This patch sets the maximum supported fp/int conversion width to 64 bits
so larger conversions are expanded before instruction selection.
It also adds a regression test for 128-bit integer/floating-point
conversions.
Related to #191013
Co-authored-by: Justin Fargnoli <jfargnoli at nvidia.com>
CI: Fix race caused by shared ctr file updates
CTR is shared between the VMs and used as a global counter. This
uncoordinated shared access can result in a CI failure due to the
racing updates. From the log:
`qemu-6-tests.sh: line 27: 1`
`6: syntax error in expression
(error token is "6")`
Resolve the issue by using separate ctr files by appending the ID.
The output now prints the total test cases count along with each VMs
individual count.
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: tiehexue <tiehexue at hotmail.com>
Closes #18778
[SSAF][NFC] Rename operator new/delete pointers analysis to TypeConstrainedPointers
There will be more such pointer entities that must retain their type
during the clang-reforge transformation. Since they are extracted and
processed similarly, combining them into a single analysis simplifies
maintenance. Therefore, we are using TypeConstrainedPointers as the
umbrella name.
geography/py-ubx2: Update to 1.3.5
Upstream NEWS, less minor improvements and bugfixes:
### RELEASE 1.3.5
1. Update NAV-DAHEADING v2 message definition for production firmware HDG 2.00 Interface Specification.
AMDGPU: Migrate Analysis/Transforms tests to amdgpu subarch triple (4) (#208812)
Continue migrating command-line target spelling on RUN lines to the
folded amdgpu subarch triple form, covering the remaining Transforms tests in
this group.
Co-Authored-By: Claude <noreply at anthropic.com> (Claude-Opus-4.8)
[lldb][test] Update whitespace of `register read` in some tests (#208838)
#188049 changed the formatting of `register read` output. A few tests
are failing now due to small space changes.
[Clang] [C++26] Expansion Statements (P1306R5) (#169680)
This implements C++26's expansion statements, i.e.
[P1306R5](https://wg21.link/P1306R5).
An expansion statement is implemented using a number of new AST
nodes. Since an expansion statement is a template, we need it to be
a dependent DeclContext, but only nodes that inherit from Decl can
be DeclContexts, for which reason this introduces a CXXExpansionStmtDecl.
This holds a synthesised constant template parameter used as the
expansion index as well as a 'CXXExpansionStmtPattern' and a
'CXXExpansionStmtInstantiation.
These two AST nodes are similar to the semantic vs syntactic form
of an InitListExpr: the 'Pattern' represents an unexpanded expansion
statement, and the resulting AST after expansion is stored in an
'Instantiation'.
Since expansion statements require us to perform template instantiation
[9 lines not shown]
[GettingStarted] Clarify Python requirement. (#208790)
We don't support building LLVM without python in any configuration;
clarify that it's a hard requirement.
config: remove HAVE_IDMAP_MNT_API check
The check itself is not needed, since we only use it to decide whether
or not to use a define, we can just test the define anyway.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
config/acl: narrow checks to userns inode->dentry change
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
config/mkdir: narrow checks to dentry return
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
config/tmpfile: narrow checks to userns dentry->file change
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
config: remove obsolete idmap/userns checks
Everything has been converted to the new helpers built on the "global"
idmap/userns checks, so we can get rid of all the individual function
checks.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
xattr: use generic checks for ZPL_XATTR_SET_WRAPPER selection
We can't (yet) replace these wrappers but we can use the generic checks
as selector, obsoleting more configure checks.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
zpl_generic_permission: generic over idmap style
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
zpl_inode_owner_or_capable: generic over idmap style
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
zpl_setattr_prepare: generic over idmap style
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769
zpl_generic_fillattr: generic over idmap style
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18769