[libc++] Introduce a private version of in_out_result and use it for copy/move algorithms (#198086)
This patch introduces a new `__in_out_result`, which is an internal
back-ported version of `in_out_result`, and is convertible to that when
it exists. This improves the readability of the code, since it replaces
uses of `first` and `second` with `__in_` and `__out_`, making it clear
which iterator is accessed.
Other algorithms will be updated in separate patches.
Import net/neatvnc
Comment:
liberally licensed VNC server library
Description:
neatvnc is a liberally licensed VNC server library that's intended to be
fast and neat.
WWW: https://github.com/any1/neatvnc
ok landry@
time/plan: update to 1.12
# changes (since 1.9)
====== 1.12 released 17.10.17 =======
FEATURES:
* feature by Ralf Paaschen: can page through months with PageUp, PageDown,
Home, and End keys
* the manpages reflect the Debian Linux paths.
* the "make linux" Makefile target is now 64 bits; use "make linux32" for
32 bits. Just "make" is still equivalent to "make debian".
====== 1.11 released 4.3.14 =======
BUG FIXES:
* Petter Reinholdtsen
- make the -L option of pland the default on Debian, considered safer
[79 lines not shown]
[CGCall] Initially store arg attrs using AttrBuilder (NFCI) (#197906)
Make the argument attribute more similar to fn/ret handling, by first
populating an AttrBuilder and then converting it to AttributeSet once at
the end, instead of using a lot of intermediate AttrBuilders. This also
ensures we cannot lose any attributes because one code path overwrites
another.
[AArch64] Copy x4/x5 vararg payload into the x64 stack in Arm64EC exit thunks (#190933)
Currently the x4/x5 in a variadic Arm64EC exit thunks are treated by
LLVM like any other outgoing arguments. x4/x5 contain a pointer to the
first stack parameter and the size of the parameters passed on the
stack, and the generated exit thunk must memcpy these to the x86-64
stack. Current MSVC does this correctly.
Rather than introducing a new entry to the CallingConv enum, we mark the
call as vararg in AArch64ArmECCallLowering so that the lowering logic in
AArch64ISelLowering.cpp can recognise this case, perform the necessary
memcpy, and drop the x4/x5 arguments.
LLVM should additionally ensure that x0-x3 are mirrored to f0-f3 in
order to match the Windows x86-64 vararg ABI, but that change is left
for a follow-up patch.