blob: 45b6253fdac8c8c57a9e5ad2af22b18d54dca466 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include "ruby/ruby.h"
static VALUE
asan_enabled_p(VALUE self)
{
#if defined(__has_feature)
/* clang uses __has_feature for determining asan */
return __has_feature(address_sanitizer) ? Qtrue : Qfalse;
#elif defined(__SANITIZE_ADDRESS__)
/* GCC sets __SANITIZE_ADDRESS__ for determining asan */
return Qtrue;
#else
return Qfalse;
#endif
}
void
Init_asan(void)
{
VALUE m = rb_define_module("Test");
VALUE c = rb_define_class_under(m, "ASAN", rb_cObject);
rb_define_singleton_method(c, "enabled?", asan_enabled_p, 0);
}
|