[PATCH] D28596: [compiler-rt] General definition for weak functions.

Marcos Pividori via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 21 15:34:24 PST 2017


mpividori added inline comments.


================
Comment at: lib/sanitizer_common/sanitizer_coverage_libcdep.cc:1021
 // Default empty implementations (weak). Users should redefine them.
-#if !SANITIZER_WINDOWS  // weak does not work on Windows.
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_cmp() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_cmp1() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_cmp2() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_cmp4() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_cmp8() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_switch() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_div4() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_div8() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_gep() {}
-SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
-void __sanitizer_cov_trace_pc_indir() {}
-#endif  // !SANITIZER_WINDOWS
+WEAK_DEF(void, __sanitizer_cov_trace_cmp, void) {}
+WEAK_DEF(void, __sanitizer_cov_trace_cmp1, void) {}
----------------
mpividori wrote:
> aizatsky wrote:
> > Can we get rid of `void` when defining a no-op weak function?
> > 
> > ```
> > WEAK_INTERFACE_DECL(const char *, __ubsan_default_options);
> > ```
> > 
> > It doesn't look like we'd need `##__VA_ARGS__`. 
> @aizatsky Yes, I can do that. Do you think that way it is easier to understand? I can see for the `INTERCEPTOR()` macro, we always make it explicit and write `void`.
@aizatsky If I do so, the compiler generates a lot of warnings: ` warning: must specify at least one argument for ... parameter of variadic macro`


https://reviews.llvm.org/D28596





More information about the llvm-commits mailing list