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;
222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  int origin_history_size;
232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  int origin_history_per_stack_limit;
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
27effdc7e483708cfa4dc597c21f246c5dbc09daa0Evgeniy Stepanov  bool poison_in_free;  // default: true
2878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov  bool report_umrs;
29a213ab66e1c743ec7a52af4a49ec6c126cc245aeEvgeniy Stepanov  bool wrap_signals;
302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  bool print_stats;
31dbac0a4a41f405d10e3dcad3597fe08986605289Dmitry Vyukov  bool halt_on_error;
325d71de26cedae3dafc17449fe0182045c0bd20e8Stephen Hines  bool atexit;
335d71de26cedae3dafc17449fe0182045c0bd20e8Stephen Hines  int store_context_size; // like malloc_context_size, but for uninit stores
3478c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov};
3578c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
3678c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy StepanovFlags *flags();
3778c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
3878c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov}  // namespace __msan
3978c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov
4078c56c3c407d2c92825c86e6af7a0230d6019a1cEvgeniy Stepanov#endif  // MSAN_FLAGS_H
41