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