llvm/compiler-rt/test/asan/TestCases/Posix/asan_symbolize_script/plugin_no_op_symbolicate.cpp

// UNSUPPORTED: ios, android
// Check plugin command line args get parsed and that plugin functions get called as expected.

// RUN: %clangxx_asan -O0 -g %s -o %t.executable
// RUN: not %env_asan_opts=symbolize=0 %run %t.executable > %t.log 2>&1
// RUN: %asan_symbolize --plugins %S/plugin_no_op.py --log-level info -l %t.log --unlikely-option-name-XXX=15 2>&1 | FileCheck %s

// CHECK: GOT --unlikely-option-name-XXX=15
// CHECK: filter_binary_path called in NoOpPlugin
// CHECK: destroy() called on NoOpPlugin

#include <cstdlib>
extern "C" void foo(int* a) {
  *a = 5;
}

int main() {
  int* a = (int*) malloc(sizeof(int));
  if (!a)
    return 0;
  free(a);
  foo(a);
  return 0;
}