summaryrefslogtreecommitdiff
path: root/lib/msan/msan.cc
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2015-02-26 15:19:33 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2015-02-26 15:19:33 +0000
commita421c3d288278b61c968b451253a8ba8f135d747 (patch)
tree81c1c2d270443ba33cbf3c033d8d6596848e4ac8 /lib/msan/msan.cc
parentf2069e7582ed3a0fe581a9a1f920b5bad6580c8f (diff)
[msan] Fix MsanTest to pass in track_origins=2 mode.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@230639 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/msan.cc')
-rw-r--r--lib/msan/msan.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc
index ed6efbdd6..caa77366c 100644
--- a/lib/msan/msan.cc
+++ b/lib/msan/msan.cc
@@ -543,6 +543,13 @@ u32 __msan_get_origin(const void *a) {
return *(u32*)origin_ptr;
}
+int __msan_origin_is_descendant_or_same(u32 this_id, u32 prev_id) {
+ Origin o = Origin::FromRawId(this_id);
+ while (o.raw_id() != prev_id && o.isChainedOrigin())
+ o = o.getNextChainedOrigin(nullptr);
+ return o.raw_id() == prev_id;
+}
+
u32 __msan_get_umr_origin() {
return __msan_origin_tls;
}