1 //===-- msandr_test_so.cc ------------------------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file is a part of MemorySanitizer.
11 //
12 // MemorySanitizer unit tests.
13 //===----------------------------------------------------------------------===//
14
15 #include "msandr_test_so.h"
16
dso_memfill(char * s,unsigned n)17 void dso_memfill(char* s, unsigned n) {
18 for (unsigned i = 0; i < n; ++i)
19 s[i] = i;
20 }
21
dso_callfn(int (* fn)(void))22 int dso_callfn(int (*fn)(void)) {
23 volatile int x = fn();
24 return x;
25 }
26
dso_callfn1(int (* fn)(long long,long long,long long))27 int dso_callfn1(int (*fn)(long long, long long, long long)) { //NOLINT
28 volatile int x = fn(1, 2, 3);
29 return x;
30 }
31
dso_stack_store(void (* fn)(int *,int *),int x)32 int dso_stack_store(void (*fn)(int*, int*), int x) {
33 int y = x + 1;
34 fn(&x, &y);
35 return y;
36 }
37
break_optimization(void * x)38 void break_optimization(void *x) {}
39