File: lsan_memleak.d

package info (click to toggle)
ldc 1%3A1.30.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 59,248 kB
  • sloc: cpp: 61,598; ansic: 14,545; sh: 1,014; makefile: 972; asm: 510; objc: 135; exp: 48; python: 12
file content (26 lines) | stat: -rw-r--r-- 605 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Test leak detection with LSan

// REQUIRES: LSan && atleast_llvm1000

// UNSUPPORTED: Windows, FreeBSD

// RUN: %ldc -g -fsanitize=address %s -of=%t_asan%exe
// RUN: not env %env_asan_opts=detect_leaks=true %t_asan%exe 2>&1 | FileCheck %s
// RUN: %ldc -g -fsanitize=leak %s -of=%t%exe
// RUN: not %t%exe 2>&1 | FileCheck %s

import core.stdc.stdlib;

// CHECK: ERROR: LeakSanitizer: detected memory leaks

void* foo()
{
    // CHECK: Direct leak of 17 byte(s) in 1 object(s) allocated from:
    // CHECK: #{{.*}} in {{.*}}lsan_memleak.d:[[@LINE+1]]
    return malloc(17);
}

void main()
{
    foo();
}