SuccessChanges

Summary

  1. gn build: Merge 25ee861372f (details)
  2. Correctly update isSignalFrame when unwinding the stack via dwarf. (details)
  3. [SEH] Defer checking filter expression types until instantiaton (details)
  4. Modernize TestWeakSymbols Makefile (details)
Commit b4237db295d925646e4fe67c54517d22c78d1cc4 by llvmgnsyncbot
gn build: Merge 25ee861372f
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
Commit d3c744313c3cca0c076f031ec71e66ca74b12f2a by saugustine
Correctly update isSignalFrame when unwinding the stack via dwarf.
A "signal frame" is a function or block of code where execution arrives
via a signal or interrupt, rather than via a normal call instruction. In
fact, a particular instruction is interrupted by the signal and needs to
be restarted. Therefore, when the signal handler is complete, execution
needs to return to the interrupted instruction, rather than the
instruction immediately following the call instruction, as in a normal
call.
Stack unwinders need to know this to correctly unwind signal frames.
Dwarf handily provides an "S" in the CIE augmentation string to describe
this case, and the libunwind API provides various functions to for
unwinders to determine it,.
The llvm libunwind implementation correctly sets it's internal variable
"isSignalFrame" when initializing an unwind context. However, upon
stepping up the stack, the current implementation correctly reads the
augmentation string and sets it in the CIE info (which it then
discards), libunwind doesn't update it's internal unwind context data
structure.
This change fixes that, and provides compatibility with both the
canonical libunwind and the libgcc implementation.
Reviewers: jfb
Subscribers: christof, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D69677
The file was modifiedlibunwind/src/DwarfInstructions.hpp
The file was modifiedlibunwind/src/UnwindLevel1-gcc-ext.c
The file was modifiedlibunwind/src/UnwindCursor.hpp
The file was addedlibunwind/test/signal_frame.pass.cpp
Commit 7177ce978e8f8e5409cec90bad07df92441656e3 by rnk
[SEH] Defer checking filter expression types until instantiaton
While here, wordsmith the error a bit. Now clang says:
error: filter expression has non-integral type 'Foo'
Fixes PR43779
Reviewers: amccarth
Differential Revision: https://reviews.llvm.org/D69969
The file was modifiedclang/test/SemaCXX/exceptions-seh.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/__try.c
Commit cbdd92be8a57e204aeb346c02ec6c4f440499679 by Fred Riss
Modernize TestWeakSymbols Makefile
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/weak_symbols/Makefile