brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1b84f7b Raw
34 lines · cpp
1// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-linux %s \2// RUN:     | FileCheck %s --check-prefixes=CHECK-RUNTIME \3// RUN:         --implicit-check-not="__asan_stack_malloc_always_"4// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-linux %s \5// RUN:         -fsanitize-address-use-after-return=runtime \6// RUN:     | FileCheck %s --check-prefixes=CHECK-RUNTIME \7// RUN:         --implicit-check-not="__asan_stack_malloc_always_"8// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-linux %s \9// RUN:         -fsanitize-address-use-after-return=always \10// RUN:     | FileCheck %s --check-prefixes=CHECK-ALWAYS \11// RUN:         --implicit-check-not=__asan_option_detect_stack_use_after_return \12// RUN:         --implicit-check-not="__asan_stack_malloc_{{[0-9]}}"13// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-linux %s \14// RUN:         -fsanitize-address-use-after-return=never \15// RUN:     | FileCheck %s \16// RUN:         --implicit-check-not=__asan_option_detect_stack_use_after_return \17// RUN:         --implicit-check-not="__asan_stack_malloc_"18 19// CHECK-RUNTIME: load{{.*}}@__asan_option_detect_stack_use_after_return20// CHECK-RUNTIME: call{{.*}}__asan_stack_malloc_021// CHECK-ALWAYS: call{{.*}}__asan_stack_malloc_always_022 23int *function1() {24  int x = 0;25 26#pragma clang diagnostic ignored "-Wreturn-stack-address"27  return &x;28}29 30int main() {31  auto px = function1();32  return 0;33}34