[PATCH v2 2/5] rtems-exeinfo.cpp: Restore ostream format

Ryan Long ryan.long at oarcorp.com
Tue Jul 20 15:06:54 UTC 2021


CID 1503006: Not restoring ostream format
CID 1503007: Not restoring ostream format

Used a variable to store the format of the ostream before any changes,
and copied what was originally there back into the stream before
returning from the function.

Closes #4469
---
 linkers/rtems-exeinfo.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/linkers/rtems-exeinfo.cpp b/linkers/rtems-exeinfo.cpp
index 6e92206..9857e47 100644
--- a/linkers/rtems-exeinfo.cpp
+++ b/linkers/rtems-exeinfo.cpp
@@ -31,6 +31,7 @@
 #endif
 
 #include <iostream>
+#include <fstream>
 #include <iomanip>
 
 #include <cxxabi.h>
@@ -47,11 +48,14 @@
 #include <rld-files.h>
 #include <rld-process.h>
 #include <rld-rtems.h>
+#include <rtems-utils.h>
 
 #ifndef HAVE_KILL
 #define kill(p,s) raise(s)
 #endif
 
+typedef rtems::utils::ostream_guard ostream_guard;
+
 namespace rld
 {
   namespace exeinfo
@@ -366,6 +370,7 @@ namespace rld
        */
 
       rld::strings all_flags;
+      ostream_guard old_state( std::cout );
 
       size_t source_max = 0;
 
@@ -632,6 +637,8 @@ namespace rld
 
     void image::output_tls ()
     {
+      ostream_guard old_state( std::cout );
+
       symbols::symbol* tls_data_begin = symbols.find_global("_TLS_Data_begin");
       symbols::symbol* tls_data_end = symbols.find_global("_TLS_Data_end");
       symbols::symbol* tls_data_size = symbols.find_global("_TLS_Data_size");
-- 
1.8.3.1



More information about the devel mailing list