[all-commits] [llvm/llvm-project] 4f0b0b: Cherry-pick gtest fix for asan tests.
Evgenii Stepanov via All-commits
all-commits at lists.llvm.org
Wed Nov 20 14:13:15 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 4f0b0bf5c6731e3d370558be08c9261801263b09
https://github.com/llvm/llvm-project/commit/4f0b0bf5c6731e3d370558be08c9261801263b09
Author: Evgenii Stepanov <eugenis at google.com>
Date: 2019-11-20 (Wed, 20 Nov 2019)
Changed paths:
M llvm/utils/unittest/googletest/src/gtest-death-test.cc
Log Message:
-----------
Cherry-pick gtest fix for asan tests.
Summary:
https://github.com/google/googletest/commit/681454dae48f109abf68c424c9d2e6db9a092238
Clone+exec death test allocates a single page of stack to run chdir + exec on.
This is not enough when gtest is built with ASan and run on particular
hardware.
With ASan on x86_64, ExecDeathTestChildMain has frame size of 1728 bytes.
Call to chdir() in ExecDeathTestChildMain ends up in
_dl_runtime_resolve_xsavec, which attempts to save register state on the stack;
according to cpuid(0xd) XSAVE register save area size is 2568 on my machine.
This results in something like this in all death tests:
Result: died but not with expected error.
...
[ DEATH ] AddressSanitizer:DEADLYSIGNAL
[ DEATH ] =================================================================
[ DEATH ] ==178637==ERROR: AddressSanitizer: stack-overflow on address ...
PiperOrigin-RevId: 278709790
Reviewers: pcc
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70332
More information about the All-commits
mailing list