Author: ed Date: Thu Mar 19 04:17:21 2015 New Revision: 232716 URL: http://llvm.org/viewvc/llvm-project?rev=232716&view=rev Log: 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 Modified: libcxxabi/trunk/src/cxa_demangle.cpp Modified: libcxxabi/trunk/src/cxa_demangle.cpp URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_demangle.cpp?rev=232716&r1=232715&r2=232716&view=diff ============================================================================== --- libcxxabi/trunk/src/cxa_demangle.cpp (original) +++ libcxxabi/trunk/src/cxa_demangle.cpp Thu Mar 19 04:17:21 2015 @@ -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); } _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
