summaryrefslogtreecommitdiffstats
path: root/compiler-rt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2012-07-24 12:29:43 +0000
committerDmitry Vyukov <dvyukov@google.com>2012-07-24 12:29:43 +0000
commitbcf0b7002bc117ec261ec86f1905d8077923ab26 (patch)
tree0cfd3bbcdf232822333e83c659ee1c3bc21e4f6a /compiler-rt
parent65d842ae5116977459b5ba3c43dd9966e2e8ed24 (diff)
downloadbcm5719-llvm-bcf0b7002bc117ec261ec86f1905d8077923ab26.tar.gz
bcm5719-llvm-bcf0b7002bc117ec261ec86f1905d8077923ab26.zip
tsan: align report style with Go internal format
llvm-svn: 160672
Diffstat (limited to 'compiler-rt')
-rw-r--r--compiler-rt/lib/tsan/go/test.c2
-rw-r--r--compiler-rt/lib/tsan/go/tsan_go.cc24
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_report.cc4
3 files changed, 14 insertions, 16 deletions
diff --git a/compiler-rt/lib/tsan/go/test.c b/compiler-rt/lib/tsan/go/test.c
index c6c21a165bd..7d6a8ce3ea9 100644
--- a/compiler-rt/lib/tsan/go/test.c
+++ b/compiler-rt/lib/tsan/go/test.c
@@ -4,7 +4,7 @@ void __tsan_init();
void __tsan_fini();
void __tsan_event(int typ, int tid, void *pc, void *addr, int info);
-int goCallbackCommentPc(void *pc, char **img, char **rtn, char **file, int *l) {
+int __tsan_symbolize(void *pc, char **img, char **rtn, char **file, int *l) {
return 0;
}
diff --git a/compiler-rt/lib/tsan/go/tsan_go.cc b/compiler-rt/lib/tsan/go/tsan_go.cc
index ce916adcd11..41f09665470 100644
--- a/compiler-rt/lib/tsan/go/tsan_go.cc
+++ b/compiler-rt/lib/tsan/go/tsan_go.cc
@@ -37,24 +37,22 @@ bool IsExpectedReport(uptr addr, uptr size) {
void internal_start_thread(void(*func)(void*), void *arg) {
}
-extern "C" int goCallbackCommentPc(uptr pc, char **img, char **rtn,
- char **filename, int *lineno);
+extern "C" int __tsan_symbolize(uptr pc, char **func, char **file,
+ int *line, int *off);
extern "C" void free(void *p);
ReportStack *SymbolizeCode(uptr addr) {
ReportStack *s = NewReportStackEntry(addr);
- char *img, *rtn, *filename;
- int lineno;
- if (goCallbackCommentPc(addr, &img, &rtn, &filename, &lineno)) {
- s->module = internal_strdup(img);
- s->offset = addr;
- s->func = internal_strdup(rtn);
- s->file = internal_strdup(filename);
- s->line = lineno;
+ char *func, *file;
+ int line, off;
+ if (__tsan_symbolize(addr, &func, &file, &line, &off)) {
+ s->offset = off;
+ s->func = internal_strdup(func);
+ s->file = internal_strdup(file);
+ s->line = line;
s->col = 0;
- free(img);
- free(rtn);
- free(filename);
+ free(func);
+ free(file);
}
return s;
}
diff --git a/compiler-rt/lib/tsan/rtl/tsan_report.cc b/compiler-rt/lib/tsan/rtl/tsan_report.cc
index a83f7b70b16..c841a9827f4 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_report.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_report.cc
@@ -131,8 +131,8 @@ void PrintReport(const ReportDesc *rep) {
static void PrintStack(const ReportStack *ent) {
for (int i = 0; ent; ent = ent->next, i++) {
- TsanPrintf(" %s()\n %s:%d +%p\n",
- ent->func, ent->file, ent->line, (void*)ent->pc);
+ TsanPrintf(" %s()\n %s:%d +0x%zx\n",
+ ent->func, ent->file, ent->line, (void*)ent->offset);
}
}
OpenPOWER on IntegriCloud