brintos

brintos / llvm-project-archived public Read only

0
0
Text · 608 B · d54fac3 Raw
29 lines · c
1// RUN: %clang_dfsan %s -o %t && %run %t2//3// Tests that labels are propagated through function calls.4 5#include <sanitizer/dfsan_interface.h>6#include <assert.h>7 8int f(int x) {9  int j = 2;10  dfsan_label j_label = 2;11  dfsan_set_label(j_label, &j, sizeof(j));12  return x + j;13}14 15int main(void) {16  int i = 1;17  dfsan_label i_label = 4;18  dfsan_set_label(i_label, &i, sizeof(i));19 20  dfsan_label ij_label = dfsan_get_label(f(i));21  assert(dfsan_has_label(ij_label, i_label));22 23  /* Must be consistent with the one in f(). */24  dfsan_label j_label = 2;25  assert(dfsan_has_label(ij_label, 2));26 27  return 0;28}29