link_turned_off.cc revision 2d1fdb26e458c4ddc04155c1d421bced3ba90cd0
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Test for disabling LSan at link-time.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: %clangxx_lsan %s -o %t
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: LSAN_OPTIONS=$LSAN_BASE %run %t
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <sanitizer/lsan_interface.h>
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)int argc_copy;
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)extern "C" {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int __lsan_is_turned_off() {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return (argc_copy == 1);
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main(int argc, char *argv[]) {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  volatile int *x = new int;
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  *x = 42;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  argc_copy = argc;
210f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  return 0;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// CHECK: SUMMARY: {{(Leak|Address)}}Sanitizer: 4 byte(s) leaked in 1 allocation(s)
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)