SuccessChanges

Summary

  1. [libc++] Fix result-type and value_type computation in <valarray>. (details)
  2. [libc++] graph_header_deps.py: Update the computing of "root" (public) headers. (details)
  3. NativeFormatting.cpp - add missing implicit MathExtras.h header dependency. NFCI. (details)
  4. MsgPackReader.cpp - add missing implicit MathExtras.h header dependency. NFCI. (details)
  5. EndianStream.h - add missing implicit MathExtras.h header dependency. NFCI. (details)
Commit 469d18c06446259aaaa8ec57f1548b1a42691512 by arthur.j.odwyer
[libc++] Fix result-type and value_type computation in <valarray>.

The `operator[]` of `_UnaryOp` and `_BinaryOp` returns the result of
calling `__op_`, so its return type should be `__result_type`, not
e.g. `_A0::value_type`. However, `_UnaryOp::value_type` also should
never have been `_A0::value_type`; it needs to be the correct type
for the result of the unary op, e.g. `bool` when the op is `logical_not`.

This turns out to matter when multiple operators are nested, e.g.
`+(v == v)` needs to have a `value_type` of `bool`, not `int`,
even when `v` is of type `valarray<int>`.

Differential Revision: https://reviews.llvm.org/D103416
The file was modifiedlibcxx/include/valarray
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_equal_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_equal_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_equal_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/equal_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/or_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/or_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/not_equal_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/equal_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_equal_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_equal_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_equal_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/greater_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/and_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/not_equal_valarray_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/not_equal_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/or_value_valarray.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/less_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/equal_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/and_valarray_value.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.comparison/and_valarray_valarray.pass.cpp
Commit 11e0882e8dde1ab7eeda0ccef620d81b12f30086 by arthur.j.odwyer
[libc++] graph_header_deps.py: Update the computing of "root" (public) headers.

The "root nodes" of the graph are displayed in bold. My intent here
was to bold just the public-API headers, e.g. <vector> and
<experimental/coroutine> and <stdlib.h>, but not helper headers
such as <__functional_base> and <__iterator/next.h>. However,
the recent mass helper-header-ification has exposed defects in
this logic: all the new helpers were ending up bolded! Fix this.
Also, add <__undef_macros> to the list of headers we don't display
by default (like <__config>); it's not interesting to see those edges.

Also, add a sample `dot` command line to the `--help` text.
The file was modifiedlibcxx/utils/graph_header_deps.py
Commit e32d73ef5ee5b7376bd6b1b08ecf22bde04d919e by llvm-dev
NativeFormatting.cpp - add missing implicit MathExtras.h header dependency. NFCI.

Noticed while investigating if we can remove an unnecessary MathExtras.h include from SmallVector.h
The file was modifiedllvm/lib/Support/NativeFormatting.cpp
Commit 24b9bc84982f47c6a62dccad1d0dd6bd7b023176 by llvm-dev
MsgPackReader.cpp - add missing implicit MathExtras.h header dependency. NFCI.

Noticed while investigating if we can remove an unnecessary MathExtras.h include from SmallVector.h
The file was modifiedllvm/lib/BinaryFormat/MsgPackReader.cpp
Commit 6ebb28d32ecb270ba20a8a495389651d1b20e8ab by llvm-dev
EndianStream.h - add missing implicit MathExtras.h header dependency. NFCI.

Noticed while investigating if we can remove an unnecessary MathExtras.h include from SmallVector.h
The file was modifiedllvm/include/llvm/Support/EndianStream.h