SuccessChanges

Summary

  1. [WinASan] Improve exception reporting accuracy (details)
  2. clang/test: Remove platform-linker feature (details)
  3. [mlir] Small cleanups to func-bufferize/finalizing-bufferize (details)
  4. Lex: Update Module::findHeader to return FileEntryRef, NFC (details)
  5. Don't count attributes when addressing operands. (details)
  6. [llvm] Fix for failing test from cf8ff75bade763b054476321dcb82dcb2e7744c7 (details)
  7. Recommit "[llvm-symbolizer] Switch to using native symbolizer by default on Windows" (details)
  8. [clang][Fuchsia] Add relative-vtables multilib (details)
  9. Revert "[clang][Fuchsia] Add relative-vtables multilib" (details)
  10. [clang][Fuchsia] Add relative-vtables multilib (details)
  11. [GlobalISel] Fix -Wunused-variable (details)
  12. [GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds (details)
Commit b5af5787b367198f8b87626431cb3f66fef460c1 by rnk
[WinASan] Improve exception reporting accuracy

Previously, ASan would produce reports like this:
ERROR: AddressSanitizer: breakpoint on unknown address 0x000000000000 (pc 0x7fffdd7c5e86 ...)

This is unhelpful, because the developer may think this is a null
pointer dereference, and not a breakpoint exception on some PC.

The cause was that SignalContext::GetAddress would read the
ExceptionInformation array to retreive an address for any kind of
exception. That data is only available for access violation exceptions.
This changes it to be conditional on the exception type, and to use the
PC otherwise.

I added a variety of tests for common exception types:
- int div zero
- breakpoint
- ud2a / illegal instruction
- SSE misalignment

I also tightened up IsMemoryAccess and GetWriteFlag to check the
ExceptionCode rather than looking at ExceptionInformation[1] directly.

Differential Revision: https://reviews.llvm.org/D92344
The file was addedcompiler-rt/test/asan/TestCases/Windows/integer_divide_by_zero.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/breakpoint.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_win.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/illegal_instruction.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/sse_misalignment.cpp
Commit 61da501b6a1bf845c3da9a7e761a3c6a3b6cf21a by thakis
clang/test: Remove platform-linker feature

By explicitly requesting the system linker with `-fuse-ld=`, the
tests are able to CHECK for the system linker even with
CLANG_DEFAULT_LINKER=lld.

Alternative to D74704.

Differential Revision: https://reviews.llvm.org/D92291
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedclang/test/Driver/riscv32-toolchain.c
The file was modifiedclang/test/Driver/riscv64-toolchain.c
The file was modifiedclang/test/Driver/riscv64-toolchain-extra.c
The file was modifiedclang/test/Driver/riscv32-toolchain-extra.c
Commit 774f1d3ffd458d6cb82d5039758ef1cf6370957f by silvasean
[mlir] Small cleanups to func-bufferize/finalizing-bufferize

- Address TODO in scf-bufferize: the argument materialization issue is
  now fixed and the code is now in Transforms/Bufferize.cpp
- Tighten up finalizing-bufferize to avoid creating invalid IR when
  operand types potentially change
- Tidy up the testing of func-bufferize, and move appropriate tests
  to a new finalizing-bufferize.mlir
- The new stricter checking in finalizing-bufferize revealed that we
  needed a DimOp conversion pattern (found when integrating into npcomp).
  Previously, the converion infrastructure was blindly changing the
  operand type during finalization, which happened to work due to
  DimOp's tensor/memref polymorphism, but is generally not encouraged
  (the new pattern is the way to tell the conversion infrastructure that
  it is legal to change that type).
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
The file was removedmlir/test/Dialect/Standard/func-bufferize-partial.mlir
The file was addedmlir/test/Transforms/finalizing-bufferize.mlir
The file was modifiedmlir/test/Dialect/Standard/func-bufferize.mlir
The file was modifiedmlir/test/Dialect/Standard/bufferize.mlir
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
Commit f85db7f7ba683b2450892fde247311d7a48adbd0 by Duncan P. N. Exon Smith
Lex: Update Module::findHeader to return FileEntryRef, NFC

Update `Module::findHeader` to return `Optional<FileEntryRef>` and
fix its one caller.

Differential Revision: https://reviews.llvm.org/D90485
The file was modifiedclang/lib/Lex/ModuleMap.cpp
The file was modifiedclang/include/clang/Lex/ModuleMap.h
Commit ff2e22853f8d8145cc7c27bb11e44155a124ecec by joker.eph
Don't count attributes when addressing operands.

Fixes out-of-bound access in generated nested DAG rewriter matching code.

Reviewed By: tpopp

Differential Revision: https://reviews.llvm.org/D92075
The file was addedmlir/test/mlir-tblgen/rewriter-indexing.td
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
Commit 4d7f3d68f1735ad343a15604559e7d55ac14bfb5 by leonardchan
[llvm] Fix for failing test from cf8ff75bade763b054476321dcb82dcb2e7744c7

Handle null values when handling operand changes for DSOLocalEquivalent.
The file was modifiedllvm/lib/IR/Constants.cpp
Commit efd1ec0dec149c4b99ab30d96edd0ef16a72380f by akhuang
Recommit "[llvm-symbolizer] Switch to using native symbolizer by default on Windows"

This reverts commit 1b63177a56e8cd6196778d2b90295f03e96b5800.
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb.test
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb-columns.test
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
The file was modifiedlld/test/COFF/symbolizer-inline.s
Commit 7c2bc3b71dc072987d43a2a86609871bd01f981f by leonardchan
[clang][Fuchsia] Add relative-vtables multilib

This adds a multilib for Fuchsia that is built with the relative vtables
ABI.
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/test/Driver/fuchsia.cpp
Commit a160189c5dfaa6b3d7c3db71991e50eebea9a63d by leonardchan
Revert "[clang][Fuchsia] Add relative-vtables multilib"

This reverts commit 7c2bc3b71dc072987d43a2a86609871bd01f981f.

Forgot to add the ifferential revision.
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
Commit fdbd84c6c819d4462546961f6086c1524d5d5ae8 by leonardchan
[clang][Fuchsia] Add relative-vtables multilib

This adds multilibs for Fuchsia that is built with the relative vtables ABI,
one with and another without exceptions.

Differential Revision: https://reviews.llvm.org/D85576
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
Commit 36fe1a9dea94ad2babfec3acdf366dabd19db550 by i
[GlobalISel] Fix -Wunused-variable
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit d928dfc6f924f7e8436dcb5bcc51285fd03e869c by i
[GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp