Оберните функцию с помощью средства очистки потока данных LLVM

#clang #sanitizer

Вопрос:

Я пытаюсь использовать Clang DataFlowSanitizer, я хотел бы определить пользовательскую оболочку функции, например, как в примере, я хотел бы обернуть memcpy, что-то сделать, а затем вызвать исходный memcpy. Он должен следовать этой схеме:

 void *__dfsw_memcpy(void *dest, const void *src, size_t n, dfsan_label dest_label, dfsan_label src_label, dfsan_label n_label, dfsan_label *ret_label){
    //Some instructions
    return memcpy(dest, src, n);
}
 

В документации говорится, что вам необходимо определить пользовательский список ABI и поместить пользовательские функции таким образом:

 fun:memcpy=uninstrumented
fun:memcpy=custom
 

но как я могу сказать компилятору, чтобы он использовал этот список ABI? Куда мне следует поместить функцию обертки?