blob: 2c2caa98b21db5a4b1aa3d6eab1db8a2f436795c [file]
// RUN: %clang --target=x86_64-linux-gnu -S -fsanitize=type -emit-llvm -o - %s \
// RUN: -fno-sanitize-type-outline-instrumentation \
// RUN: | FileCheck %s --check-prefixes=CHECK-NO-OUTLINE
// RUN: %clang --target=x86_64-linux-gnu -S -fsanitize=type -emit-llvm -o - %s \
// RUN: -fsanitize-type-outline-instrumentation \
// RUN: | FileCheck %s --check-prefixes=CHECK-OUTLINE
// CHECK-LABEL: @alias
// CHECK: __tysan_app_memory_mask
// CHECK: __tysan_shadow_memory_address
// CHECK-NO-OUTLINE-NOT: call{{.*}}@__tysan_instrument_mem_inst
// CHECK-NO-OUTLINE-NOT: call{{.*}}@__tysan_instrument_with_shadow_update
// CHECK-OUTLINE: call{{.*}}@__tysan_instrument_mem_inst
// CHECK-OUTLINE: call{{.*}}@__tysan_instrument_with_shadow_update
float alias(int *ptr){
float *aliasedPtr = (float *)ptr;
*aliasedPtr *= 2.0f;
return *aliasedPtr;
}