File: msan_uninitialized.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 (22 lines) | stat: -rw-r--r-- 607 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
// Test unitialized data access with MemorySanitizer

// REQUIRES: MSan

// RUN: %ldc -g -fsanitize=memory -run %s
// RUN: %ldc -g -fsanitize=memory -fsanitize-memory-track-origins=2 -d-version=BUG %s -of=%t%exe
// RUN: not %t%exe 2>&1 | FileCheck %s

// CHECK: MemorySanitizer: use-of-uninitialized-value

// CHECK: Uninitialized value was created by an allocation of {{.*}} in the stack frame of function '_Dmain'
// CHECK-NEXT: #0 {{.* in (_Dmain|D main) .*}}msan_uninitialized.d:[[@LINE+1]]
int main()
{
    version (BUG)
        int x = void;
    else
        int x;

    int* p = &x;
    return *p;
}