summaryrefslogtreecommitdiffstats
path: root/contrib/python/cryptography/next/rust/msan.cpp
blob: c653958f4b005b052872ee37e762c9c06cdc2e9c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdint.h>
#include <cstddef>

typedef size_t uptr;
typedef uint32_t u32;

// defined in clang{XX}-rt/msan
extern "C" void __msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr);
extern "C" void __msan_unpoison(void *a, uptr size);


extern "C" void __safe_msan_set_alloca_origin_with_descr(void *a, uptr size, u32 *id_ptr, char *descr) {
  __msan_set_alloca_origin_with_descr(a, size, id_ptr, descr);
  __msan_unpoison(a, size);
}


extern "C" void* malloc(size_t size);
extern "C" void *__safe_malloc(size_t size) {
    void* ret = malloc(size);
    __msan_unpoison(ret, size);
    return ret;
}