Skip to content

Commit c997c7d

Browse files
Merge pull request #6666 from apple/cherrypick/atosrecover
Cherrypick/atosrecover
2 parents b408eb6 + fa68c16 commit c997c7d

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ bool AtosSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) {
163163
uptr start_address = AddressInfo::kUnknown;
164164
if (!ParseCommandOutput(buf, addr, &stack->info.function, &stack->info.module,
165165
&stack->info.file, &line, &start_address)) {
166-
process_ = nullptr;
166+
Report("WARNING: atos failed to symbolize address \"0x%zx\"\n", addr);
167167
return false;
168168
}
169169
stack->info.line = (int)line;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Check that there is a warning when atos fails to symbolize an address
2+
// and that atos continues symbolicating correctly after.
3+
4+
// RUN: %clangxx -O0 %s -o %t
5+
// RUN: not %run %t 2>&1 | FileCheck %s
6+
7+
// This test tests for undefined behavior and is leading to various failures.
8+
// Going to disable to unblock CI and rethink a test for this. rdar://107846128
9+
// UNSUPPORTED: darwin
10+
11+
void bar() {
12+
void *invalid_addr = reinterpret_cast<void *>(0xDEADBEEF);
13+
void (*func_ptr)() = reinterpret_cast<void (*)()>(invalid_addr);
14+
func_ptr();
15+
}
16+
17+
int main() {
18+
bar();
19+
return 0;
20+
// CHECK: WARNING: atos failed to symbolize address{{.*}}
21+
// CHECK: {{.*}}atos-symbolized-recover.cpp:[[@LINE-3]]{{.*}}
22+
}

0 commit comments

Comments
 (0)