[compiler-rt] r206584 - [msan] Add new MSan callbacks for instrumentation-with-calls mode.
Evgeniy Stepanov
eugeni.stepanov at gmail.com
Fri Apr 18 05:15:25 PDT 2014
Author: eugenis
Date: Fri Apr 18 07:15:24 2014
New Revision: 206584
URL: http://llvm.org/viewvc/llvm-project?rev=206584&view=rev
Log:
[msan] Add new MSan callbacks for instrumentation-with-calls mode.
Modified:
compiler-rt/trunk/lib/msan/msan.cc
Modified: compiler-rt/trunk/lib/msan/msan.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan.cc?rev=206584&r1=206583&r2=206584&view=diff
==============================================================================
--- compiler-rt/trunk/lib/msan/msan.cc (original)
+++ compiler-rt/trunk/lib/msan/msan.cc Fri Apr 18 07:15:24 2014
@@ -249,6 +249,34 @@ u32 ChainOrigin(u32 id, StackTrace *stac
using namespace __msan;
+#define MSAN_MAYBE_WARNING(type, size) \
+ void __msan_maybe_warning_##size(type s, u32 o) { \
+ GET_CALLER_PC_BP_SP; \
+ (void) sp; \
+ if (UNLIKELY(s)) { \
+ PrintWarningWithOrigin(pc, bp, o); \
+ if (__msan::flags()->halt_on_error) { \
+ Printf("Exiting\n"); \
+ Die(); \
+ } \
+ } \
+ }
+
+MSAN_MAYBE_WARNING(u8, 1)
+MSAN_MAYBE_WARNING(u16, 2)
+MSAN_MAYBE_WARNING(u32, 4)
+MSAN_MAYBE_WARNING(u64, 8)
+
+#define MSAN_MAYBE_STORE_ORIGIN(type, size) \
+ void __msan_maybe_store_origin_##size(type s, void *p, u32 o) { \
+ if (UNLIKELY(s)) *(u32 *)MEM_TO_ORIGIN((uptr)p &~3UL) = o; \
+ }
+
+MSAN_MAYBE_STORE_ORIGIN(u8, 1)
+MSAN_MAYBE_STORE_ORIGIN(u16, 2)
+MSAN_MAYBE_STORE_ORIGIN(u32, 4)
+MSAN_MAYBE_STORE_ORIGIN(u64, 8)
+
void __msan_warning() {
GET_CALLER_PC_BP_SP;
(void)sp;
More information about the llvm-commits
mailing list