1 // RUN: %clang_asan -O2 %s -o %t
2 // We need replace_intrin=0 to avoid reporting errors in memcpy.
3 // RUN: env ASAN_OPTIONS=replace_intrin=0:check_printf=1 not %run %t 2>&1 | FileCheck --check-prefix=CHECK-ON %s
4 // RUN: env ASAN_OPTIONS=replace_intrin=0:check_printf=0 %run %t 2>&1 | FileCheck --check-prefix=CHECK-OFF %s
5 // RUN: env ASAN_OPTIONS=replace_intrin=0 not %run %t 2>&1 | FileCheck --check-prefix=CHECK-ON %s
10 volatile char c
= '0';
12 volatile float f
= 1.239;
13 volatile char s
[] = "34";
15 memcpy((char *)fmt
, "%c %d %f %s\n", sizeof(fmt
));
16 printf((char *)fmt
, c
, x
, f
, s
);
18 // Check that format string is sanitized.
19 // CHECK-ON: stack-buffer-overflow
20 // CHECK-ON-NOT: 0 12 1.239 34