Changes

Summary

  1. [VectorComine] Restrict single-element-store index to inbounds constant (details)
  2. tsan: declare annotations in test.h (details)
  3. sanitizer_common: fix SIG_DFL warning (details)
  4. [symbolizer] Fix leak after D96883 (details)
  5. sanitizer_common: don't write into .rodata (details)
Commit 6d2df181638a34f5d4ebc0c92cfb6a30abf8588d by qiucofan
[VectorComine] Restrict single-element-store index to inbounds constant

Vector single element update optimization is landed in 2db4979. But the
scope needs restriction. This patch restricts the index to inbounds and
vector must be fixed sized. In future, we may use value tracking to
relax constant restrictions.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D102146
The file was modifiedllvm/test/Transforms/VectorCombine/load-insert-store.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
Commit 8214764f35e1b764fb939e18f16e11aa43073469 by dvyukov
tsan: declare annotations in test.h

We already declare subset of annotations in test.h.
But some are duplicated and declared in tests.
Move all annotation declarations to test.h.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102152
The file was modifiedcompiler-rt/test/tsan/thread_end_with_ignore2.cpp
The file was modifiedcompiler-rt/test/tsan/thread_end_with_ignore3.cpp
The file was modifiedcompiler-rt/test/tsan/thread_name.cpp
The file was modifiedcompiler-rt/test/tsan/ignore_sync.cpp
The file was modifiedcompiler-rt/test/tsan/mutexset5.cpp
The file was modifiedcompiler-rt/test/tsan/mutex_bad_unlock.cpp
The file was modifiedcompiler-rt/test/tsan/mutex_bad_read_unlock.cpp
The file was modifiedcompiler-rt/test/tsan/test.h
The file was modifiedcompiler-rt/test/tsan/annotate_happens_before.cpp
The file was modifiedcompiler-rt/test/tsan/benign_race.cpp
The file was modifiedcompiler-rt/test/tsan/signal_sync2.cpp
The file was modifiedcompiler-rt/test/tsan/mutex_bad_read_lock.cpp
The file was modifiedcompiler-rt/test/tsan/mutex_double_lock.cpp
The file was modifiedcompiler-rt/test/tsan/thread_end_with_ignore.cpp
Commit 53558ed8a0abaf2f457cfa3d98c85d0fa1e84b22 by dvyukov
sanitizer_common: fix SIG_DFL warning

Currently we have:

sanitizer_posix_libcdep.cpp:146:27: warning: cast between incompatible
  function types from ‘__sighandler_t’ {aka ‘void (*)(int)’} to ‘sa_sigaction_t’
  146 |     sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL;

We don't set SA_SIGINFO, so we need to assign to sa_handler.
And SIG_DFL is meant for sa_handler, so this gets rid of both
compiler warning, type cast and potential runtime misbehavior.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102162
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
Commit 85a96d82ca76819df56c97b6b3b5d5d98a030d5d by Vitaly Buka
[symbolizer] Fix leak after D96883
The file was modifiedllvm/lib/DebugInfo/Symbolize/DIPrinter.cpp
Commit 23596fece043fa04206dcd5b26b4ca832e6741db by dvyukov
sanitizer_common: don't write into .rodata

setlocale interceptor imitates a write into result,
which may be located in .rodata section.
This is the only interceptor that tries to do this and
I think the intention was to initialize the range for msan.
So do that instead. Writing into .rodata shouldn't happen
(without crashing later on the actual write) and this
traps on my local tsan experiments.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102161
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc