brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · e95ef32 Raw
33 lines · cpp
1// RUN: %clangxx -O3  %s -o %t2// RUN: %env_tool_opts=strip_path_prefix=/TestCases/ %run %t 2>&1 | FileCheck %s3// RUN: %env_tool_opts=strip_path_prefix=/TestCases/:symbolize_inline_frames=0 %run %t 2>&1 | FileCheck %s --check-prefixes=NOINLINE4// RUN: %env_tool_opts=strip_path_prefix=/TestCases/:symbolize_inline_frames=1 %run %t 2>&1 | FileCheck %s5 6// XFAIL: darwin7 8#include <sanitizer/common_interface_defs.h>9#include <stdio.h>10#include <string.h>11 12char buffer[10000];13 14__attribute__((noinline)) static void Symbolize() {15  __sanitizer_symbolize_pc(__sanitizer_return_address(), "%p %F %L", buffer,16                           sizeof(buffer));17  for (char *p = buffer; strlen(p); p += strlen(p) + 1)18    printf("%s\n", p);19}20 21// NOINLINE: {{0x[0-9a-f]+}} in main symbolize_pc_inline.cpp:[[@LINE+2]]22// CHECK: [[ADDR:0x[0-9a-f]+]] in C2 symbolize_pc_inline.cpp:[[@LINE+1]]23static inline void C2() { Symbolize(); }24 25// CHECK: [[ADDR]] in C3 symbolize_pc_inline.cpp:[[@LINE+1]]26static inline void C3() { C2(); }27 28// CHECK: [[ADDR]] in C4 symbolize_pc_inline.cpp:[[@LINE+1]]29static inline void C4() { C3(); }30 31// CHECK: [[ADDR]] in main symbolize_pc_inline.cpp:[[@LINE+1]]32int main() { C4(); }33