197edeb3e6270b05cb3ece0d5b6f0ea1f0ba1398aEvgeniy Stepanov//===-- msan_flags.h --------------------------------------------*- C++ -*-===//
278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//                     The LLVM Compiler Infrastructure
478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// This file is distributed under the University of Illinois Open Source
678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// License. See LICENSE.TXT for details.
778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//===----------------------------------------------------------------------===//
978c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
1078c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// This file is a part of MemorySanitizer.
1178c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//
1278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// MemorySanitizer allocator.
1378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov//===----------------------------------------------------------------------===//
1478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov#ifndef MSAN_FLAGS_H
1578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov#define MSAN_FLAGS_H
1678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
1778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanovnamespace __msan {
1878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
1978c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov// Flags.
2078c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanovstruct Flags {
2178c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  int exit_code;
2278c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  int num_callers;
2378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  int verbosity;
2478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  bool poison_heap_with_zeroes;  // default: false
2578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  bool poison_stack_with_zeroes;  // default: false
2678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  bool poison_in_malloc;  // default: true
2778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  bool report_umrs;
281d333c5a34d896f239001e3fe69a660e40d15301Kostya Serebryany  const char *strip_path_prefix;
2958b52b5efb7641b27c1728be0946889f335d83e1Evgeniy Stepanov  // Use fast (frame-pointer-based) unwinder on fatal errors (if available).
3058b52b5efb7641b27c1728be0946889f335d83e1Evgeniy Stepanov  bool fast_unwind_on_fatal;
3158b52b5efb7641b27c1728be0946889f335d83e1Evgeniy Stepanov  // Use fast (frame-pointer-based) unwinder on malloc/free (if available).
3258b52b5efb7641b27c1728be0946889f335d83e1Evgeniy Stepanov  bool fast_unwind_on_malloc;
3378c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov};
3478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
3578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy StepanovFlags *flags();
3678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
3778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov}  // namespace __msan
3878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
3978c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov#endif  // MSAN_FLAGS_H
40