/home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.cpp:77:25: runtime error: left shift of 0x0000000000000000fffffffffffffffb by 96 places cannot be represented in type '__int128' #0 0x7ffff754edfe in __ubsan::Value::getSIntValue() const /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.cpp:77 #1 0x7ffff7548719 in __ubsan::Value::isNegative() const /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.h:190 #2 0x7ffff7542a34 in handleShiftOutOfBoundsImpl /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_handlers.cpp:338 #3 0x7ffff75431b7 in __ubsan_handle_shift_out_of_bounds /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_handlers.cpp:370 #4 0x40067f in main (/home/marxin/Programming/testcases/a.out+0x40067f) #5 0x7ffff72c8b24 in __libc_start_main (/lib64/libc.so.6+0x27b24) #6 0x4005bd in _start (/home/marxin/Programming/testcases/a.out+0x4005bd) Differential Revision: https://reviews.llvm.org/D97263 Cherry-pick from 16ede0956cb1f4b692dfa619ccfa6ab1de28e19b. |
||
---|---|---|
.. | ||
asan | ||
builtins | ||
hwasan | ||
include | ||
interception | ||
libbacktrace | ||
lsan | ||
sanitizer_common | ||
tsan | ||
ubsan | ||
ChangeLog | ||
HOWTO_MERGE | ||
LICENSE.TXT | ||
LOCAL_PATCHES | ||
MERGE | ||
Makefile.am | ||
Makefile.in | ||
README.gcc | ||
acinclude.m4 | ||
aclocal.m4 | ||
config.h.in | ||
configure | ||
configure.ac | ||
configure.tgt | ||
libsanitizer.spec.in | ||
merge.sh |
README.gcc
AddressSanitizer and ThreadSanitizer (https://github.com/google/sanitizers) are projects initially developed by Google Inc. Both tools consist of a compiler module and a run-time library. The sources of the run-time library for these projects are hosted at https://github.com/llvm/llvm-project in the following directories: compiler-rt/include/sanitizer compiler-rt/lib/sanitizer_common compiler-rt/lib/interception compiler-rt/lib/asan compiler-rt/lib/tsan compiler-rt/lib/lsan compiler-rt/lib/ubsan compiler-rt/lib/hwasan Trivial and urgent fixes (portability, build fixes, etc.) may go directly to the GCC tree. All non-trivial changes, functionality improvements, etc. should go through the upstream tree first and then be merged back to the GCC tree. The merges from upstream should be done with the aid of the merge.sh script; it will also update the file MERGE to contain the upstream revision we merged with.