brintos

brintos / llvm-project-archived public Read only

0
0
Text · 567 B · d49a813 Raw
35 lines · c
1// RUN: %clang_tysan -O0 %s -o %t && %run %t >%t.out 2>&12// RUN: FileCheck %s < %t.out3 4#include <stdint.h>5#include <stdio.h>6 7// CHECK-NOT: TypeSanitizer8 9union a {10  int16_t b;11  uint64_t c;12} d;13 14uint64_t *e = &d.c;15static uint16_t f(int16_t a, int32_t b, uint64_t c);16static int64_t g(int32_t aa, uint8_t h, union a bb) {17  int16_t *i = &d.b;18  f(0, h, 0);19  *i = h;20  return 0;21}22uint16_t f(int16_t a, int32_t b, uint64_t c) {23  for (d.c = 0; 0;)24    ;25  *e = 0;26  return 0;27}28 29int main() {30  uint32_t j = 8;31  g(1, j, d);32  printf("%d\n", d.b);33  return 0;34}35