Summary: Currently many allocator specific errors (OOM, for example) are reported as a text message and CHECK(0) termination, not stack, no details, not too helpful nor informative. To improve the situation, detailed and structured errors were defined and reported under the appropriate conditions. Reviewers: eugenis Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D47798 llvm-svn: 334248
26 lines
860 B
C++
26 lines
860 B
C++
// RUN: %clangxx_hwasan -O0 %s -o %t
|
|
// RUN: %env_hwasan_opts=allocator_may_return_null=0 not %run %t 2>&1 | FileCheck %s
|
|
// RUN: %env_hwasan_opts=allocator_may_return_null=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NULL
|
|
|
|
// UNSUPPORTED: android
|
|
|
|
// REQUIRES: stable-runtime
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
extern void *aligned_alloc(size_t alignment, size_t size);
|
|
|
|
int main() {
|
|
void *p = aligned_alloc(17, 100);
|
|
// CHECK: ERROR: HWAddressSanitizer: invalid alignment requested in aligned_alloc: 17
|
|
// CHECK: {{#0 0x.* in .*}}{{aligned_alloc|memalign}}
|
|
// CHECK: {{#1 0x.* in main .*aligned_alloc-alignment.cc:}}[[@LINE-3]]
|
|
// CHECK: SUMMARY: HWAddressSanitizer: invalid-aligned-alloc-alignment
|
|
|
|
printf("pointer after failed aligned_alloc: %zd\n", (size_t)p);
|
|
// CHECK-NULL: pointer after failed aligned_alloc: 0
|
|
|
|
return 0;
|
|
}
|