[SimplifyCFG] Don't hoist a musttail call separately from the terminator (#207094)
SimplifyCFG can accidentally hoist `musttail` away from the `ret` if
`hoistCommonCodeFromSuccessor` skipped a differing instruction, causing
a misverify. So we need to guard the `musttail` call to make sure that the `ret` is
hoisted along with the call. This can only happen when no instruction
has been skipped so both successors be folded into the the predecessor,
leaving a valid `musttail` call.
Reproducer https://godbolt.org/z/3vsnz4hc7
blogc: update in response to feedback
Adjust the description to one that is perhaps a little more helpful. Add
a CC Features flag for c99. Add a COMMIT_MSG file for cvs. Add in a
TEST_TARGET to run checks. Remove an unnecessary entry in the PLIST.
[orc-rt] Add Session::tryAttach, construct ControllerAccess in attach. (#207114)
Reworks Session's controller-attachment API so that clients no longer
construct or hold a ControllerAccess directly:
- attach<ControllerAccessT>(BI, Args...) now constructs the
ControllerAccess internally, passing *this as the first constructor
argument. Suitable for ControllerAccess implementations whose
construction cannot fail.
- tryAttach<ControllerAccessT>(BI, Args...) is the new fallible
counterpart to attach. It forwards *this and the given args to
ControllerAccessT::Create, which must return an
Expected<std::shared_ptr<ControllerAccessT>>. On success, proceeds to
call connect on the instance, otherwise returns the Error. This lets
implementations surface setup failures (e.g. failing to bind a socket)
synchronously as an Error, without ever handing back a
usable-but-unconnected object.
[4 lines not shown]
[InlineAsm] Diagnose oversized non-scalar tied asm outputs (#206230)
The 'r' asm constraint binds an operand to a general-purpose register.
For tied inline asm operands, Clang may promote a smaller integer input
to match a larger non-scalar register output. Only allow that path when
the output size can be represented by an integer type that fits in a
general-purpose register.
Otherwise, diagnose with err_store_value_to_reg before CodeGen attempts
to lower the asm and crashes.
This keeps GPR-sized aggregate/class outputs accepted while rejecting
larger array, struct, union, complex, vector, and class outputs. Add
Sema coverage for the affected C and C++ cases.
Fixes #204775
jj: updated to 0.43.0
0.43.0
Release highlights
jj run allows you to run a command over a set of changes, each with their
own private working copy; the commands may update the working copy and
changes/conflicts are propagated accordingly, e.g., jj run -- cargo check --all-features or jj run -- cargo fix behaves as one might expect.
Breaking changes
The deprecated git_head() and git_refs() functions have been removed from
revsets and templates.
Git-like symbols (e.g. refs/heads/main) are no longer resolved to
revisions. Use the bookmark/tag <name> or <name>@<remote> syntax instead.
The deprecated ui.revsets-use-glob-by-default option has been removed.
[2 lines not shown]
[orc-rt] Apply noexcept to more Error.h APIs. (#207109)
These APIs are all unconditionally nothrow: their bodies either call
already-noexcept APIs, or move std::string / std::exception_ptr /
std::unique_ptr members whose move constructors are already noexcept.
libjxl: updated to 0.12.0
0.12.0
Added
A new buffering flag is now available in the CLI, alongside support for
streaming input with buffered output.
Introduced the new jxltran tool, which supports extracting codestreams from
jxlp boxes and packing raw codestreams into jxlc boxes.
Added the --reconstruct_jpeg flag to djxl to losslessly reconstruct a
JPEG and fail if impossible (mutually exclusive with --pixels_to_jpeg and
--jpeg_quality).
Added JXL_DEC_UNSUPPORTED (kUnsupported) status code to the core API to
better indicate when requested features or operations are not supported by
the decoder.
tools: added support for ProPhoto
color space names in CLI arguments (cjxl / djxl).
decoder API: support for out-of-order jxlp boxes (ftyp minor version 1).
[9 lines not shown]
cleanup when nfsm_srvmtofh1() errors in nfsrv_rename()
corrects vnode references and namei_pool leak
reported by Andrew Griffiths of Calif
initial diff from deraadt@ ok miod@
vendor/bmake: Add back LICENSE and VERSION
* Keep LICENSE for vendor software, keeping consistent with other vendor
softwares.
* VERSION can be included in the Makefile to avoid hardcoding the
version there.