1 // UNSUPPORTED: ios, android
2 // Check plugin command line args get parsed and that plugin functions get called as expected.
3 
4 // RUN: %clangxx_asan -O0 -g %s -o %t.executable
5 // RUN: not %env_asan_opts=symbolize=0 %run %t.executable > %t.log 2>&1
6 // RUN: %asan_symbolize --plugins %S/plugin_no_op.py --log-level info -l %t.log --unlikely-option-name-XXX=15 2>&1 | FileCheck %s
7 
8 // CHECK: GOT --unlikely-option-name-XXX=15
9 // CHECK: filter_binary_path called in NoOpPlugin
10 // CHECK: destroy() called on NoOpPlugin
11 
12 #include <cstdlib>
foo(int * a)13 extern "C" void foo(int* a) {
14   *a = 5;
15 }
16 
main()17 int main() {
18   int* a = (int*) malloc(sizeof(int));
19   if (!a)
20     return 0;
21   free(a);
22   foo(a);
23   return 0;
24 }
25