diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2013-02-28 07:00:13 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2013-02-28 07:00:13 +0000 |
commit | 1052c99f46ae2fcd842c4313056f924f3da95b97 (patch) | |
tree | 6e53016215d0a09df7a5143ecea004c9485738a9 | |
parent | 0615dbe44c4a9ed74a3398f29155541fd8dc14ba (diff) | |
download | bcm5719-llvm-1052c99f46ae2fcd842c4313056f924f3da95b97.tar.gz bcm5719-llvm-1052c99f46ae2fcd842c4313056f924f3da95b97.zip |
Holy macaroons, somebody made a copy of llvm/runtime/profile/GCDAProfiling.c,
didn't delete the original, and now they've diverged. I have no idea what's
going on. Apply my patch in r176173 to this one too, this one looks newer?
llvm-svn: 176236
-rw-r--r-- | compiler-rt/lib/profile/GCDAProfiling.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler-rt/lib/profile/GCDAProfiling.c b/compiler-rt/lib/profile/GCDAProfiling.c index 7c52a174099..96e9fc2b7ff 100644 --- a/compiler-rt/lib/profile/GCDAProfiling.c +++ b/compiler-rt/lib/profile/GCDAProfiling.c @@ -207,18 +207,23 @@ void llvm_gcda_increment_indirect_counter(uint32_t *predecessor, } void llvm_gcda_emit_function(uint32_t ident, const char *function_name) { + uint32_t len = 3; #ifdef DEBUG_GCDAPROFILING - fprintf(stderr, "llvmgcda: function id=0x%08x\n", ident); + fprintf(stderr, "llvmgcda: function id=0x%08x name=%s\n", ident, + function_name ? function_name : "NULL"); #endif if (!output_file) return; - /* function tag */ + /* function tag */ fwrite("\0\0\0\1", 4, 1, output_file); - write_int32(3 + 1 + length_of_string(function_name)); + if (function_name) + len += 1 + length_of_string(function_name); + write_int32(len); write_int32(ident); write_int32(0); write_int32(0); - write_string(function_name); + if (function_name) + write_string(function_name); } void llvm_gcda_emit_arcs(uint32_t num_counters, uint64_t *counters) { |