SuccessChanges

Summary

  1. [RISCV] Fix up tests on Windows after new usage of sys::path::append (details)
  2. [AsmWritter] Fixed "null check after dereferencing" warning (details)
  3. Fix warning about unused std::unique result, erase shifted elements (details)
  4. canFoldMergeOpcode returns a bool result not an unsigned. NFCI. (details)
  5. ImutAVLTree::validateTree - fix null dereference typo warning. NFCI. (details)
  6. FDRRecords - fix uninitialized variable warnings. NFCI. (details)
  7. Revert "[Sema] Suppress -Wchar-subscripts if the index is a literal (details)
  8. crashlog.py: Improve regular expressions (details)
  9. Wrong debug info generated at -O2 (-O0 is correct) (details)
  10. [clang] Add -fdebug-default-version for specifying the default DWARF (details)
  11. [Sema] Fixes a crash with a templated destructor (details)
  12. [InstCombine] Add test cases to show bad canonicalization of bitcasts (details)
  13. [lldb] Improve assert in GDBRemoteCommunicationReplayServer (details)
  14. [CodeGenModule] Group blocks runtime globals together, NFC (details)
  15. [Diagnostics] Teach -Wnull-dereference about address_space attribute (details)
  16. [codeview] Reference types in type parent scopes (details)
  17. Revert "[MachineVerifier] Improve verification of live-in lists. (details)
  18. [clang] Report sanitizer blacklist as a dependency in cc1 (details)
  19. BreakpointDummyOptionGroup was using g_breakpoint_modify_options rather (details)
  20. [compiler-rt] Fix tests after 03b84e4f6d0 (details)
  21. [debugify] Move the Debugify pass from tools/opt to lib/Transform/Utils (details)
  22. gn build: Merge 25ee861372f (details)
  23. Correctly update isSignalFrame when unwinding the stack via dwarf. (details)
  24. [SEH] Defer checking filter expression types until instantiaton (details)
  25. Modernize TestWeakSymbols Makefile (details)
  26. [InstCombine] auto-generate complete checks; NFC (details)
Commit f37b5c800e150ad915c4e0571edd2c92c0160d89 by rnk
[RISCV] Fix up tests on Windows after new usage of sys::path::append
The file was modifiedclang/test/Driver/riscv64-toolchain.c
The file was modifiedclang/test/Driver/riscv32-toolchain.c
Commit 6e655e58bc748d631fac90d969e77ceb04b884db by Dávid Bolvanský
[AsmWritter] Fixed "null check after dereferencing" warning
Summary: The 'BB->getParent()' pointer was utilized before it was
verified against nullptr. Check lines: 3567, 3581.
Reviewers: jyknight, RKSimon
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69751
The file was modifiedllvm/lib/IR/AsmWriter.cpp
Commit dd870f6929ee0b1dfb5fd000c7b826a1bd2d2571 by rnk
Fix warning about unused std::unique result, erase shifted elements
This is actually a functional change. I haven't added any new test
coverage. I'm just trying to fix the warning and hoping for the best.
The file was modifiedclang/include/clang/Serialization/ContinuousRangeMap.h
Commit 65c5f4e929e75596732ec49dafe71bc6abea847d by llvm-dev
canFoldMergeOpcode returns a bool result not an unsigned. NFCI.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
Commit 4525a43c9393b63e144aaeb8854909b37e3371b0 by llvm-dev
ImutAVLTree::validateTree - fix null dereference typo warning. NFCI.
Noticed by static analyzer.
The file was modifiedllvm/include/llvm/ADT/ImmutableSet.h
Commit 08b5b553083e23008664596a6caa53452a7000c8 by llvm-dev
FDRRecords - fix uninitialized variable warnings. NFCI.
The file was modifiedllvm/include/llvm/XRay/FDRRecords.h
Commit 90ecfa2f5f7feea6e3676d59fe6126e08c52d00e by ed.jones
Revert "[Sema] Suppress -Wchar-subscripts if the index is a literal
char"
This reverts commit 7adab7719e55e1b29bfd521dcc73f202139e8f41.
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaCXX/warn-char-subscripts.cpp
Commit ff9d732887385e6f3e516769419dd64b406d81d8 by Adrian Prantl
crashlog.py: Improve regular expressions
This is yet another change to the regular expressions in crashlog.py
that fix a few edge cases, and attempt to improve the readability quite
a bit in the process. My last change to support spaces in filenames
introduced a bug that caused the version/archspec field to be parsed as
part of the image name.
For example, in "0x1111111 - 0x22222 +MyApp Pro arm64 <01234>", the name
of the image was recognized as "MyApp Pro arm64" instead of
"MyApp Pro" with a "version" of arm64.
The bugfix makes the space following an optional field mandatory
*inside* the optional group.
rdar://problem/56883435
Differential Revision: https://reviews.llvm.org/D69871
The file was modifiedlldb/examples/python/crashlog.py
The file was modifiedlldb/test/Shell/Python/crashlog.test
Commit a087b78bc4c31be5a82eda62f1e4c7fe1fec14ad by Vedant Kumar
Wrong debug info generated at -O2 (-O0 is correct)
Instcombiner pass was erasing trivially dead instruction without
updating dependent llvm.dbg.value. which was not showing programmer
current state of variables while debugging. As a part of this fix I did
following, Iterate throught all the users (llvm.dbg) of a instruction
which is trivially dead and set each if them undef, Before deleting the
instruction. Now user will see optimized out, when try to print those
variables. This fixes https://bugs.llvm.org/show_bug.cgi?id=43893
This is my first fix to llvm.
Patch by kamlesh kumar!
Differential Revision: https://reviews.llvm.org/D69809
The file was modifiedllvm/test/Transforms/InstCombine/stacksave-debuginfo.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was addedllvm/test/Transforms/InstCombine/pr43893.ll
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/test/Transforms/InstCombine/cast-mul-select.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/debuginfo-dce.ll
Commit 8d8f9c24407461fadf1730e80ebcf7c767254715 by dblaikie
[clang] Add -fdebug-default-version for specifying the default DWARF
version
This flag decouples specifying the DWARF version from enabling/disabling
DWARF in general (or the gN level - gmlt/limited/standalone, etc) while
still allowing existing -gdwarf-N flags to override this default.
Patch by Caroline Tice!
Differential Revision: https://reviews.llvm.org/D69822
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.h
The file was addedclang/test/Driver/debug-default-version.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
Commit 2b943c46873a6411c5a79dcd708d8c72ce5b3675 by koraq
[Sema] Fixes a crash with a templated destructor
The issue was introduced by D33189 which fixed PR33189.
Fixes PR38671: "destructor cannot be declared as a template" leads to
segfault in Sema::LookupSpecialMember
Differential Revision: https://reviews.llvm.org/D69225
The file was modifiedclang/test/SemaTemplate/destructor-template.cpp
The file was modifiedclang/lib/Sema/SemaLookup.cpp
Commit 96119586c9968f3c1e56513d52956f5738cf4d26 by craig.topper
[InstCombine] Add test cases to show bad canonicalization of bitcasts
between x86_mmx and <1 x i64>.
As the test cases show, we end up with an insert/extract and a bitcast
to/from i64. x86_mmx is for some purposes conceptually a vector. We
shouldn't be adding scalar conversions around it.
Since _m64 is defined as <1 x i64> and intrinsics use x86_mmx as their
input/output these extra scalar operations prevent the X86 backend from
generating good code especially on 32-bit targets where i64 gets split.
The file was modifiedllvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
Commit c62a9f180c26e2fed012531caa581f0d736bfed9 by Jonas Devlieghere
[lldb] Improve assert in GDBRemoteCommunicationReplayServer
While investigating an issue where a different packet was sent during
replay I noticed how annoying it is that the existing assert doesn't
specify what packet is actually different. It's printed to the log, but
enabling logging has the potential to change LLDB's behavior. The same
is true when debugging LLDB while it's replaying the reproducer.
I replaced the assert with a printf of the unexpected packet followed by
a fatal_error wrapped in ifndef NDEBUG. The behavior is the same as the
previous assert, just with more/better context.
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp
Commit b95bb0847a1ea366dda69901c24415e0d00a9527 by Vedant Kumar
[CodeGenModule] Group blocks runtime globals together, NFC
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
Commit 01b10bc7b14963902405d202ac78cd88d44adbc5 by Dávid Bolvanský
[Diagnostics] Teach -Wnull-dereference about address_space attribute
Summary: Clang should not warn for:
> test.c:2:12: warning: indirection of non-volatile null pointer will be
deleted,
>       not trap [-Wnull-dereference]
>     return *(int __attribute__((address_space(256))) *) 0;
>            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Solves PR42292.
Reviewers: aaron.ballman, rsmith
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69664
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/Sema/exprs.c
Commit d91ed80e97ac9bfcfb02440874ed8b9a51c9491e by rnk
[codeview] Reference types in type parent scopes
Without this change, when a nested tag type of any kind (enum, class,
struct, union) is used as a variable type, it is emitted without
emitting the parent type. In CodeView, parent types point to their inner
types, and inner types do not point back to their parents. We already
walk over all of the parent scopes to build the fully qualified name.
This change simply requests their type indices as we go along to enusre
they are all emitted.
Fixes PR43905
Reviewers: akhuang, amccarth
Differential Revision: https://reviews.llvm.org/D69924
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modifiedllvm/test/DebugInfo/COFF/global-constants.ll
The file was addedllvm/test/DebugInfo/COFF/parent-type-scopes.ll
Commit ad3c9d46fe39af1762a7be75d754723be9a5594a by gkistanova
Revert "[MachineVerifier] Improve verification of live-in lists.
This reverts commit b7b170c to give the author more time to address
failing tests on the expensive checks buildbots.
The file was removedllvm/test/MachineVerifier/live-ins-01.mir
The file was removedllvm/test/MachineVerifier/live-ins-03.mir
The file was removedllvm/test/MachineVerifier/live-ins-02.mir
The file was modifiedllvm/include/llvm/CodeGen/LivePhysRegs.h
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit 03b84e4f6d0e1c04f22d69cc445f36e1f713beb4 by Jan Korous
[clang] Report sanitizer blacklist as a dependency in cc1
Previously these were reported from the driver which blocked
clang-scan-deps from getting the full set of dependencies from cc1
commands.
Also the default sanitizer blacklist that is added in driver was never
reported as a dependency. I introduced -fsanitize-system-blacklist cc1
option to keep track of which blacklists were user-specified and which
were added by driver and clang -MD now also reports system blacklists as
dependencies.
Differential Revision: https://reviews.llvm.org/D69290
The file was modifiedclang/include/clang/Driver/SanitizerArgs.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Frontend/dependency-gen.c
The file was modifiedclang/test/Driver/fsanitize-blacklist.c
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit f1539b9db39a59a5e50c065c39e491ba4f890377 by jingham
BreakpointDummyOptionGroup was using g_breakpoint_modify_options rather
than g_breakpoint_dummy_options causing the -D option for breakpoint set
command to be incorrectly parsed.
Patch by Martin Svensson.
Differential Revision: https://reviews.llvm.org/D69425
The file was modifiedlldb/source/Commands/CommandObjectBreakpoint.cpp
The file was addedlldb/test/Shell/Breakpoint/Inputs/dummy-target.c
The file was addedlldb/test/Shell/Breakpoint/dummy-target.test
Commit bdeb2724f0aa9c518f94d998d24d8620a1e88727 by Jan Korous
[compiler-rt] Fix tests after 03b84e4f6d0
Fallout from:
[clang] Report sanitizer blacklist as a dependency in cc1
Default blacklists are now passed via -fsanitize-system-blacklist from
driver to cc1.
The file was modifiedcompiler-rt/test/asan/TestCases/default_blacklist.cpp
The file was modifiedcompiler-rt/test/msan/default_blacklist.cpp
Commit 25ee861372f1b6f512fb1fc7c938267670cf0cab by daniel_l_sanders
[debugify] Move the Debugify pass from tools/opt to lib/Transform/Utils
Summary: I need to make use of this pass from a driver program that
isn't opt. Therefore this patch moves this pass into the LLVM library so
that it is available for use elsewhere.
There was one function I kept in tools/opt which is
exportDebugifyStats() this is because it's serializing the statistics
into a human readable format and this seemed more in keeping with opt
than a library function
Reviewers: vsk, aprantl
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69926
The file was modifiedllvm/tools/opt/CMakeLists.txt
The file was modifiedllvm/tools/opt/opt.cpp
The file was addedllvm/include/llvm/Transforms/Utils/Debugify.h
The file was modifiedllvm/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedllvm/tools/opt/NewPMDriver.cpp
The file was removedllvm/tools/opt/Debugify.h
The file was removedllvm/tools/opt/Debugify.cpp
The file was addedllvm/lib/Transforms/Utils/Debugify.cpp
Commit b4237db295d925646e4fe67c54517d22c78d1cc4 by llvmgnsyncbot
gn build: Merge 25ee861372f
The file was modifiedllvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/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 addedlibunwind/test/signal_frame.pass.cpp
The file was modifiedlibunwind/src/DwarfInstructions.hpp
The file was modifiedlibunwind/src/UnwindLevel1-gcc-ext.c
The file was modifiedlibunwind/src/UnwindCursor.hpp
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/test/Sema/__try.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
Commit cbdd92be8a57e204aeb346c02ec6c4f440499679 by Fred Riss
Modernize TestWeakSymbols Makefile
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/weak_symbols/Makefile
Commit 2f32da3da1d5c02e7d212d1036982ff547cf1c25 by spatel
[InstCombine] auto-generate complete checks; NFC
The file was modifiedllvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll