forked from OSchip/llvm-project
[msan] Remove an extra top frame from track-origins=2 reports.
llvm-svn: 205192
This commit is contained in:
parent
2378d4c0ce
commit
3c95744de8
|
@ -484,7 +484,9 @@ void __msan_set_alloca_origin4(void *a, uptr size, const char *descr, uptr pc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 __msan_chain_origin(u32 id) {
|
u32 __msan_chain_origin(u32 id) {
|
||||||
GET_STORE_STACK_TRACE;
|
GET_CALLER_PC_BP_SP;
|
||||||
|
(void)sp;
|
||||||
|
GET_STORE_STACK_TRACE_PC_BP(pc, bp);
|
||||||
return ChainOrigin(id, &stack);
|
return ChainOrigin(id, &stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,14 +104,16 @@ u32 ChainOrigin(u32 id, StackTrace *stack);
|
||||||
StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), \
|
StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), \
|
||||||
common_flags()->fast_unwind_on_malloc)
|
common_flags()->fast_unwind_on_malloc)
|
||||||
|
|
||||||
#define GET_STORE_STACK_TRACE \
|
#define GET_STORE_STACK_TRACE_PC_BP(pc, bp) \
|
||||||
StackTrace stack; \
|
StackTrace stack; \
|
||||||
stack.size = 0; \
|
stack.size = 0; \
|
||||||
if (__msan_get_track_origins() > 1 && msan_inited) \
|
if (__msan_get_track_origins() > 1 && msan_inited) \
|
||||||
GetStackTrace(&stack, common_flags()->malloc_context_size, \
|
GetStackTrace(&stack, common_flags()->malloc_context_size, pc, bp, \
|
||||||
StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(), \
|
|
||||||
common_flags()->fast_unwind_on_malloc)
|
common_flags()->fast_unwind_on_malloc)
|
||||||
|
|
||||||
|
#define GET_STORE_STACK_TRACE \
|
||||||
|
GET_STORE_STACK_TRACE_PC_BP(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME())
|
||||||
|
|
||||||
class ScopedThreadLocalStateBackup {
|
class ScopedThreadLocalStateBackup {
|
||||||
public:
|
public:
|
||||||
ScopedThreadLocalStateBackup() { Backup(); }
|
ScopedThreadLocalStateBackup() { Backup(); }
|
||||||
|
|
|
@ -41,13 +41,13 @@ int main(int argc, char *argv[]) {
|
||||||
// CHECK: {{#0 .* in main.*chained_origin.cc:37}}
|
// CHECK: {{#0 .* in main.*chained_origin.cc:37}}
|
||||||
|
|
||||||
// CHECK: Uninitialized value was stored to memory at
|
// CHECK: Uninitialized value was stored to memory at
|
||||||
// CHECK: {{#.* in fn_h.*chained_origin.cc:25}}
|
// CHECK: {{#0 .* in fn_h.*chained_origin.cc:25}}
|
||||||
// CHECK: {{#.* in main.*chained_origin.cc:36}}
|
// CHECK: {{#1 .* in main.*chained_origin.cc:36}}
|
||||||
|
|
||||||
// CHECK: Uninitialized value was stored to memory at
|
// CHECK: Uninitialized value was stored to memory at
|
||||||
// CHECK: {{#.* in fn_g.*chained_origin.cc:15}}
|
// CHECK: {{#0 .* in fn_g.*chained_origin.cc:15}}
|
||||||
// CHECK: {{#.* in fn_f.*chained_origin.cc:20}}
|
// CHECK: {{#1 .* in fn_f.*chained_origin.cc:20}}
|
||||||
// CHECK: {{#.* in main.*chained_origin.cc:35}}
|
// CHECK: {{#2 .* in main.*chained_origin.cc:35}}
|
||||||
|
|
||||||
// CHECK-STACK: Uninitialized value was created by an allocation of 'z' in the stack frame of function 'main'
|
// CHECK-STACK: Uninitialized value was created by an allocation of 'z' in the stack frame of function 'main'
|
||||||
// CHECK-STACK: {{#0 .* in main.*chained_origin.cc:28}}
|
// CHECK-STACK: {{#0 .* in main.*chained_origin.cc:28}}
|
||||||
|
|
|
@ -40,11 +40,11 @@ int main(int argc, char *argv[]) {
|
||||||
// CHECK: {{#0 .* in main .*chained_origin_memcpy.cc:36}}
|
// CHECK: {{#0 .* in main .*chained_origin_memcpy.cc:36}}
|
||||||
|
|
||||||
// CHECK: Uninitialized value was stored to memory at
|
// CHECK: Uninitialized value was stored to memory at
|
||||||
// CHECK: {{#.* in fn_h.*chained_origin_memcpy.cc:28}}
|
// CHECK: {{#1 .* in fn_h.*chained_origin_memcpy.cc:28}}
|
||||||
|
|
||||||
// CHECK: Uninitialized value was stored to memory at
|
// CHECK: Uninitialized value was stored to memory at
|
||||||
// CHECK: {{#.* in fn_g.*chained_origin_memcpy.cc:18}}
|
// CHECK: {{#0 .* in fn_g.*chained_origin_memcpy.cc:18}}
|
||||||
// CHECK: {{#.* in fn_f.*chained_origin_memcpy.cc:23}}
|
// CHECK: {{#1 .* in fn_f.*chained_origin_memcpy.cc:23}}
|
||||||
|
|
||||||
// CHECK-Z1: Uninitialized value was created by an allocation of 'z1' in the stack frame of function 'main'
|
// CHECK-Z1: Uninitialized value was created by an allocation of 'z1' in the stack frame of function 'main'
|
||||||
// CHECK-Z2: Uninitialized value was created by an allocation of 'z2' in the stack frame of function 'main'
|
// CHECK-Z2: Uninitialized value was created by an allocation of 'z2' in the stack frame of function 'main'
|
||||||
|
|
Loading…
Reference in New Issue