re PR go/77625 (go/gofrontend/ast-dump.cc:169:42: error: ‘new’ of type ‘std::ofstr...
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 20 Sep 2016 17:52:23 +0000 (17:52 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 20 Sep 2016 17:52:23 +0000 (17:52 +0000)
PR go/77625

    compiler: allocate std::ofstream as a local variable

    GCC PR 77625 points out a warning about new std::ofstream.  I don't know
    how that is supposed to work, but in this case the std::ofstream may as
    well be a local variable anyhow.

    Reviewed-on: https://go-review.googlesource.com/29435

From-SVN: r240279

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/ast-dump.cc

index dbe86f673013a14b4780c0876b2b6327da3b7596..48d19462897bbb495220d57087e8b2d1247bc053 100644 (file)
@@ -1,4 +1,4 @@
-80720773ac1a3433b7de59ffa5c04744123247c3
+57d120d75be87c2a0da67e750f16929891f1b8f4
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 72b01420aa3165bce2cda243f3fcbe32932c2990..8dad18c4f05cd09be58f0515cbad7cb23facdc3b 100644 (file)
@@ -166,24 +166,24 @@ const char* kAstDumpFileExtension = ".dump.ast";
 void
 Ast_dump_context::dump(Gogo* gogo, const char* basename)
 {
-  std::ofstream* out = new std::ofstream();
+  std::ofstream out;
   std::string dumpname(basename);
   dumpname += ".dump.ast";
-  out->open(dumpname.c_str());
+  out.open(dumpname.c_str());
 
-  if (out->fail())
+  if (out.fail())
     {
       error("cannot open %s:%m, -fgo-dump-ast ignored", dumpname.c_str());
       return;
     }
 
   this->gogo_ = gogo;
-  this->ostream_ = out;
+  this->ostream_ = &out;
 
   Ast_dump_traverse_blocks_and_functions adtbf(this);
   gogo->traverse(&adtbf);
 
-  out->close();
+  out.close();
 }
 
 // Dump a textual representation of a type to the