SuccessChanges

Summary

  1. Add an unsigned shift base sanitizer (details)
  2. Add a global flag to disable the global dialect registry "process wise" (details)
Commit 82d29b397bb24c6a9e5c41401278886f4614e544 by JF Bastien
Add an unsigned shift base sanitizer

It's not undefined behavior for an unsigned left shift to overflow (i.e. to
shift bits out), but it has been the source of bugs and exploits in certain
codebases in the past. As we do in other parts of UBSan, this patch adds a
dynamic checker which acts beyond UBSan and checks other sources of errors. The
option is enabled as part of -fsanitize=integer.

The flag is named: -fsanitize=unsigned-shift-base
This matches shift-base and shift-exponent flags.

<rdar://problem/46129047>

Differential Revision: https://reviews.llvm.org/D86000
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp (diff)
The file was modifiedllvm/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/docs/UndefinedBehaviorSanitizer.rst (diff)
The file was addedclang/test/CodeGen/unsigned-shift-base.c
The file was modifiedclang/include/clang/Basic/Sanitizers.def (diff)
The file was modifiedclang/lib/Driver/ToolChain.cpp (diff)
The file was modifiedclang/test/Driver/fsanitize.c (diff)
The file was addedcompiler-rt/test/ubsan/TestCases/Integer/unsigned-shift.cpp
Commit 7b00c80888f8fd42b07be0fd23bf3b475b6ae207 by joker.eph
Add a global flag to disable the global dialect registry "process wise"

This is intended to ease the transition for client with a lot of
dependencies. It'll be removed in the coming weeks.

Differential Revision: https://reviews.llvm.org/D86755
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Dialect.h (diff)
The file was modifiedmlir/lib/IR/Dialect.cpp (diff)