llvm-project/compiler-rt/test/sanitizer_common
Evgeniy Stepanov eb37fcbc87 [sanitizer] Fix sem_init_glibc.cc test on __HAVE_64B_ATOMIC arches.
glibc can use one of 2 layouts for semaphores: architectures that
don't HAVE_64B_ATOMIC use an uint32_t field with semaphore value,
then a private field, then a waiting thread count field - this is
the layout currently assumed by the test. However, HAVE_64B_ATOMIC
arches use a fused uint64_t field that contains the value in low bits
and waiting thread count in high bits, followed by a private field.

This resulted in taking private field from the wrong offset on 64-bit
atomic platforms (the test still passed, but didn't actually test
the private field). On big-endian platforms, this resulted in a fail,
since the first 4 bytes overlay the thread count field, and not
the value field.

Found while porting ASan to s390x.

Patch by Marcin Kościelnicki.

llvm-svn: 265715
2016-04-07 20:26:28 +00:00
..
TestCases [sanitizer] Fix sem_init_glibc.cc test on __HAVE_64B_ATOMIC arches. 2016-04-07 20:26:28 +00:00
Unit
CMakeLists.txt [sanitizer_common] Correct the nits that should have been committed as part of r260227. 2016-02-09 16:14:31 +00:00
lit.common.cfg [sanitizer_common tests] Make Darwin a Posix system and bring the stable-runtime definition from ASan tests. 2016-03-10 18:46:23 +00:00
lit.site.cfg.in [tests] Always specify correct config.target_arch when configuring test suite. 2016-02-23 01:34:17 +00:00