Home | History | Annotate | Line # | Download | only in ubsan
      1 //===-- ubsan_win_weak_interception.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 // This module should be included in Ubsan when it is implemented as a shared
     10 // library on Windows (dll), in order to delegate the calls of weak functions to
     11 // the implementation in the main executable when a strong definition is
     12 // provided.
     13 //===----------------------------------------------------------------------===//
     14 #ifdef SANITIZER_DYNAMIC
     15 #include "sanitizer_common/sanitizer_win_weak_interception.h"
     16 #include "ubsan_flags.h"
     17 #include "ubsan_monitor.h"
     18 // Check if strong definitions for weak functions are present in the main
     19 // executable. If that is the case, override dll functions to point to strong
     20 // implementations.
     21 #define INTERFACE_FUNCTION(Name)
     22 #define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name)
     23 #include "ubsan_interface.inc"
     24 #endif // SANITIZER_DYNAMIC
     25