diff --git a/compiler-rt/test/dfsan/flush.c b/compiler-rt/test/dfsan/flush.c --- a/compiler-rt/test/dfsan/flush.c +++ b/compiler-rt/test/dfsan/flush.c @@ -1,5 +1,6 @@ // Tests dfsan_flush(). // RUN: %clang_dfsan %s -o %t && %run %t +// RUN: %clang_dfsan -DORIGIN_TRACKING -mllvm -dfsan-track-origins=1 -mllvm -dfsan-fast-16-labels=true %s -o %t && %run %t #include #include #include @@ -17,12 +18,20 @@ assert(dfsan_get_label(global) == 10); assert(dfsan_get_label(local) == 20); assert(dfsan_get_label(*heap) == 30); +#ifdef ORIGIN_TRACKING + assert(dfsan_get_origin(global)); + assert(dfsan_get_origin(local)); + assert(dfsan_get_origin(*heap)); +#endif dfsan_flush(); assert(dfsan_get_label(global) == 0); assert(dfsan_get_label(local) == 0); assert(dfsan_get_label(*heap) == 0); + assert(dfsan_get_origin(global) == 0); + assert(dfsan_get_origin(local) == 0); + assert(dfsan_get_origin(*heap) == 0); free(heap); }