[PATCH] D86000: Add an unsigned shift base sanitizer
JF Bastien via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 14 14:51:49 PDT 2020
jfb created this revision.
jfb added a reviewer: vsk.
Herald added subscribers: Sanitizers, cfe-commits, ributzka, dexonsmith, jkorous.
Herald added projects: clang, Sanitizers.
jfb requested review of this revision.
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 completely separately from other checkers since it's unlikely
that folks who have currently adopted other checkers will want this one.
The flag is named: -fsanitize=unsigned-shift-base
This matches shift-base and shift-exponent flags.
rdar://problem/46129047
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D86000
Files:
clang/docs/UndefinedBehaviorSanitizer.rst
clang/include/clang/Basic/Sanitizers.def
clang/lib/CodeGen/CGExprScalar.cpp
clang/lib/Driver/SanitizerArgs.cpp
clang/lib/Driver/ToolChain.cpp
clang/test/CodeGen/unsigned-shift-base.c
clang/test/Driver/fsanitize.c
compiler-rt/test/ubsan/TestCases/Integer/unsigned-shift.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86000.285767.patch
Type: text/x-patch
Size: 18974 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200814/c1c052b4/attachment-0001.bin>
More information about the cfe-commits
mailing list