diff options
author | Ed Schouten <ed@nuxi.nl> | 2015-03-19 09:17:21 +0000 |
---|---|---|
committer | Ed Schouten <ed@nuxi.nl> | 2015-03-19 09:17:21 +0000 |
commit | 196cbd71b3ecb7e32149e1495f871be55bb02e24 (patch) | |
tree | 0ba9e8a98b38456da529100e1fd56b9895a14362 /src/cxa_demangle.cpp | |
parent | 28ca89d06667ab559852b438b2db98e29e475ce6 (diff) |
Don't print debugging messages to stdout.
There is some debugging code in cxa_demangle.cpp that prints messages on
stdout. In general this is not safe, as the program itself may use
stdout to write its output. Change this code to write to stderr.
Differential Revision: http://reviews.llvm.org/D8167
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@232716 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'src/cxa_demangle.cpp')
-rw-r--r-- | src/cxa_demangle.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/cxa_demangle.cpp b/src/cxa_demangle.cpp index 1344f43..789d577 100644 --- a/src/cxa_demangle.cpp +++ b/src/cxa_demangle.cpp @@ -55,51 +55,51 @@ template <class C> void print_stack(const C& db) { - printf("---------\n"); - printf("names:\n"); + fprintf(stderr, "---------\n"); + fprintf(stderr, "names:\n"); for (auto& s : db.names) - printf("{%s#%s}\n", s.first.c_str(), s.second.c_str()); + fprintf(stderr, "{%s#%s}\n", s.first.c_str(), s.second.c_str()); int i = -1; - printf("subs:\n"); + fprintf(stderr, "subs:\n"); for (auto& v : db.subs) { if (i >= 0) - printf("S%i_ = {", i); + fprintf(stderr, "S%i_ = {", i); else - printf("S_ = {"); + fprintf(stderr, "S_ = {"); for (auto& s : v) - printf("{%s#%s}", s.first.c_str(), s.second.c_str()); - printf("}\n"); + fprintf(stderr, "{%s#%s}", s.first.c_str(), s.second.c_str()); + fprintf(stderr, "}\n"); ++i; } - printf("template_param:\n"); + fprintf(stderr, "template_param:\n"); for (auto& t : db.template_param) { - printf("--\n"); + fprintf(stderr, "--\n"); i = -1; for (auto& v : t) { if (i >= 0) - printf("T%i_ = {", i); + fprintf(stderr, "T%i_ = {", i); else - printf("T_ = {"); + fprintf(stderr, "T_ = {"); for (auto& s : v) - printf("{%s#%s}", s.first.c_str(), s.second.c_str()); - printf("}\n"); + fprintf(stderr, "{%s#%s}", s.first.c_str(), s.second.c_str()); + fprintf(stderr, "}\n"); ++i; } } - printf("---------\n\n"); + fprintf(stderr, "---------\n\n"); } template <class C> void print_state(const char* msg, const char* first, const char* last, const C& db) { - printf("%s: ", msg); + fprintf(stderr, "%s: ", msg); for (; first != last; ++first) - printf("%c", *first); - printf("\n"); + fprintf(stderr, "%c", *first); + fprintf(stderr, "\n"); print_stack(db); } |