forked from OSchip/llvm-project
[TSAN] Fix test java_race_pc
Incremented the pc for each architecture in accordance with StackTrace:GetPreviousInstructionPC Reviewers: samsonov, dvyukov Subscribers: llvm-commits, mohit.bhakkad, jaydeep Differential: http://reviews.llvm.org/D17802 llvm-svn: 262483
This commit is contained in:
parent
45dbfa1f83
commit
8f3381ed31
|
@ -13,7 +13,7 @@ void barbaz() {
|
|||
|
||||
void *Thread(void *p) {
|
||||
barrier_wait(&barrier);
|
||||
__tsan_read1_pc((jptr)p, (jptr)foobar + 1);
|
||||
__tsan_read1_pc((jptr)p, (jptr)foobar + kPCInc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ int main() {
|
|||
__tsan_java_alloc(jheap, kBlockSize);
|
||||
pthread_t th;
|
||||
pthread_create(&th, 0, Thread, (void*)jheap);
|
||||
__tsan_write1_pc((jptr)jheap, (jptr)barbaz + 1);
|
||||
__tsan_write1_pc((jptr)jheap, (jptr)barbaz + kPCInc);
|
||||
barrier_wait(&barrier);
|
||||
pthread_join(th, 0);
|
||||
__tsan_java_free(jheap, kBlockSize);
|
||||
|
|
|
@ -67,3 +67,13 @@ unsigned long long monotonic_clock_ns() {
|
|||
return (unsigned long long)t.tv_sec * 1000000000ull + t.tv_nsec;
|
||||
}
|
||||
#endif
|
||||
|
||||
//The const kPCInc must be in sync with StackTrace::GetPreviousInstructionPc
|
||||
#if defined(__powerpc64__)
|
||||
// PCs are always 4 byte aligned.
|
||||
const int kPCInc = 4;
|
||||
#elif defined(__sparc__) || defined(__mips__)
|
||||
const int kPCInc = 8;
|
||||
#else
|
||||
const int kPCInc = 1;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue