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

llvm-svn: 232716
This commit is contained in:
Ed Schouten 2015-03-19 09:17:21 +00:00
parent aa27aadb14
commit d0c480b04c
1 changed files with 18 additions and 18 deletions

View File

@ -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);
}