https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101751
Bug ID: 101751 Summary: asan_test.C fails with excess error with glibc-2.34 Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite Assignee: unassigned at gcc dot gnu.org Reporter: xry111 at mengyan1223 dot wang Target Milestone: --- Executing on host: /sources/gcc-11.2.0/build/gcc/testsuite/g++1/../../xg++ -B/sources/gcc-11.2.0/build/gcc/testsuite/g++1/../../ /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.C -fsanitize=address -g -I/sources/gcc-11.2.0/gcc/testsuite/../../libsanitizer/include -fdiagnostics-plain-output -nostdinc++ -I/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu -I/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include -I/sources/gcc-11.2.0/libstdc++-v3/libsupc++ -I/sources/gcc-11.2.0/libstdc++-v3/include/backward -I/sources/gcc-11.2.0/libstdc++-v3/testsuite/util -fmessage-length=0 -O2 -std=c++11 -fsanitize=address -fno-builtin -Wall -Werror -Wno-alloc-size-larger-than -Wno-stringop-overflow -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl -DASAN_NEEDS_SEGV=1 -DASAN_AVOID_EXPENSIVE_TESTS=1 -msse2 -D__NO_INLINE__ /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc -dumpbase "" -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/ -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/asan/ -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/asan/.libs -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libitm/ -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libitm/.libs -lm -o ./asan_test.exe (timeout = 300) spawn -ignore SIGHUP /sources/gcc-11.2.0/build/gcc/testsuite/g++1/../../xg++ -B/sources/gcc-11.2.0/build/gcc/testsuite/g++1/../../ /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.C -fsanitize=address -g -I/sources/gcc-11.2.0/gcc/testsuite/../../libsanitizer/include -fdiagnostics-plain-output -nostdinc++ -I/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu -I/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include -I/sources/gcc-11.2.0/libstdc++-v3/libsupc++ -I/sources/gcc-11.2.0/libstdc++-v3/include/backward -I/sources/gcc-11.2.0/libstdc++-v3/testsuite/util -fmessage-length=0 -O2 -std=c++11 -fsanitize=address -fno-builtin -Wall -Werror -Wno-alloc-size-larger-than -Wno-stringop-overflow -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl -DASAN_NEEDS_SEGV=1 -DASAN_AVOID_EXPENSIVE_TESTS=1 -msse2 -D__NO_INLINE__ /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_globals_test-wrapper.cc -dumpbase -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/ -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/asan/ -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libsanitizer/asan/.libs -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libstdc++-v3/src/.libs -B/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libitm/ -L/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/./libitm/.libs -lm -o ./asan_test.exe In file included from /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.C:15: In function 'void* TSDWorker(void*)', inlined from 'void* TSDWorker(void*)' at /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.cc:141:7: /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.cc:143:24: error: 'int pthread_setspecific(pthread_key_t, const void*)' expecting 1 byte in a region of size 0 [-Werror=stringop-overread] In file included from /sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:35, from /sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr.h:148, from /sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/atomicity.h:35, from /sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:39, from /sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libstdc++-v3/include/string:55, from /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test_config.h:19, from /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test_utils.h:17, from /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.cc:11, from /sources/gcc-11.2.0/gcc/testsuite/g++.dg/asan/asan_test.C:15: /sources/gcc-11.2.0/build/gcc/include-fixed/pthread.h: In function 'void* TSDWorker(void*)': /sources/gcc-11.2.0/build/gcc/include-fixed/pthread.h:1317:12: note: in a call to function 'int pthread_setspecific(pthread_key_t, const void*)' declared with attribute 'access (none, 2)' cc1plus: all warnings being treated as errors compiler exited with status 1 FAIL: g++.dg/asan/asan_test.C -O2 (test for excess errors) It seems because glibc-2.34 has introduced __attribute__((__access__(...))) for pthread_setspecific.