]> granicus.if.org Git - llvm/commitdiff
[llvm-undname] Flush output before demangling.
authorZachary Turner <zturner@google.com>
Sat, 21 Jul 2018 15:39:05 +0000 (15:39 +0000)
committerZachary Turner <zturner@google.com>
Sat, 21 Jul 2018 15:39:05 +0000 (15:39 +0000)
If an error occurs and we write it to stderr, it could appear
before we wrote the mangled name which we're undecorating.
By flushing stdout first, we ensure that the messages are always
sequenced in the correct order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337645 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-undname/llvm-undname.cpp

index f18702af2f570cb66d9106ca0fc1da2f2a993d58..2124ec16945548a4714a3d2e8bd510f843c8efc7 100644 (file)
@@ -62,14 +62,17 @@ int main(int argc, char **argv) {
       // them to the terminal a second time.  If they're coming from redirected
       // input, however, then we should display the input line so that the
       // mangled and demangled name can be easily correlated in the output.
-      if (!sys::Process::StandardInIsUserInput())
+      if (!sys::Process::StandardInIsUserInput()) {
         outs() << Line << "\n";
+        outs().flush();
+      }
       demangle(Line);
       outs() << "\n";
     }
   } else {
     for (StringRef S : Symbols) {
       outs() << S << "\n";
+      outs().flush();
       demangle(S);
       outs() << "\n";
     }