1 // RUN: %clang_dfsan %s -mllvm -dfsan-combine-offset-labels-on-gep=false -Wno-error=int-conversion -o %t && %run %t
2 // RUN: %clang_dfsan %s -DPROP_OFFSET_LABELS -Wno-error=int-conversion -o %t && %run %t
4 // REQUIRES: x86_64-target-arch
6 // Tests that labels are propagated through GEP.
8 #include <sanitizer/dfsan_interface.h>
15 // test that pointer arithmetic propagates labels in terms of the flag.
16 dfsan_set_label(1, &i
, sizeof(i
));
18 #ifdef PROP_OFFSET_LABELS
19 assert(dfsan_get_label(p
) == 1);
21 assert(dfsan_get_label(p
) == 0);
23 // test that non-pointer operations always propagate labels.
24 dfsan_set_label(2, &j
, sizeof(j
));
26 assert(dfsan_get_label(j
) == 3);