return 0;
}
-/* The pass's gate. */
-
-static bool
-tsan_gate (void)
-{
- return (flag_sanitize & SANITIZE_THREAD) != 0;
-}
-
/* Inserts __tsan_init () into the list of CTORs. */
void
/* opt_pass methods: */
opt_pass * clone () { return new pass_tsan (m_ctxt); }
- bool gate () { return tsan_gate (); }
- unsigned int execute () { return tsan_pass (); }
+ virtual bool gate (function *)
+{
+ return (flag_sanitize & SANITIZE_THREAD) != 0;
+}
+
+ virtual unsigned int execute (function *) { return tsan_pass (); }
}; // class pass_tsan
return new pass_tsan (ctxt);
}
-static bool
-tsan_gate_O0 (void)
-{
- return (flag_sanitize & SANITIZE_THREAD) != 0 && !optimize;
-}
-
namespace {
const pass_data pass_data_tsan_O0 =
{}
/* opt_pass methods: */
- bool gate () { return tsan_gate_O0 (); }
- unsigned int execute () { return tsan_pass (); }
+ virtual bool gate (function *)
+ {
+ return (flag_sanitize & SANITIZE_THREAD) != 0 && !optimize;
+ }
+
+ virtual unsigned int execute (function *) { return tsan_pass (); }
}; // class pass_tsan_O0