FailedChanges

Summary

  1. [libc++] Implement LWG1203 (details)
  2. Fix build due to renaming in LoopInfo. (details)
  3. [AArch64] Teach analyzeBranch to remove branch equivelent to fallthrough (details)
  4. [libc++] NFC: Collocate C++20 removed members of std::allocator (details)
  5. [libc++] NFC: Reindent the feature test macro generation script (details)
Commit fdc41e11f9687a50c97e2a59663bf2d541ff5489 by Louis Dionne
[libc++] Implement LWG1203

Libc++ had an issue where nonsensical code like

  decltype(std::stringstream{} << std::vector<int>{});

would compile, as long as you kept the expression inside decltype in
an unevaluated operand. This turned out to be that we didn't implement
LWG1203, which clarifies what we should do in that case.

rdar://58769296
The file was modifiedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/rvalue.pass.cpp (diff)
The file was addedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/rvalue.pass.cpp
The file was modifiedlibcxx/include/ostream (diff)
The file was addedlibcxx/test/std/input.output/iostream.format/input.streams/istream.rvalue/not_istreamable.verify.cpp
The file was modifiedlibcxx/include/istream (diff)
The file was addedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/not_ostreamable.verify.cpp
The file was removedlibcxx/test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp
The file was modifiedlibcxx/www/cxx2a_status.html (diff)
Commit d4e3e1e548793c6686e19f8ba50bf62f3fde7545 by michael.hliao
Fix build due to renaming in LoopInfo.
The file was modifiedllvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (diff)
Commit e1a3271ebb8756150fb78824b65fe0a752f6ec3d by listmail
[AArch64] Teach analyzeBranch to remove branch equivelent to fallthrough

The motivation here is that MachineBlockPlacement relies on analyzeBranch to remove branches to fallthrough blocks when the branch is not fully analyzeable. With the introduction of the FAULTING_OP psuedo for implicit null checking (see D87861), this case becomes important. Note that it's hard to otherwise exercise this path as BranchFolding handle's any fully analyzeable branch sequence without using this interface.

p.s. For anyone who saw my comment in the original review, what I thought was an issue in BranchFolding originally turned out to simply be a bug in my patch. (Now fixed.)

Differential Revision: https://reviews.llvm.org/D88035
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/implicit-null-check.ll (diff)
Commit 2404ed02025c210c707a856f69604ef20083dcbb by Louis Dionne
[libc++] NFC: Collocate C++20 removed members of std::allocator
The file was modifiedlibcxx/include/memory (diff)
Commit 7656dd33d9326df0b86f08676474dbf8055866b8 by Louis Dionne
[libc++] NFC: Reindent the feature test macro generation script

Each feature-test macro is now a clear block indentation-wise.
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py (diff)