GCC PR 77625 is about a warning while compiling the Go frontend. The Go frontend called `new std::ofstream()`, and the warning is "error: ‘new’ of type ‘std::ofstream {aka std::basic_ofstream<char>}’ with extended alignment 16". Frankly I'm not sure how this supposed to work: shouldn't it be possible to write new std::ofstream()? But the problem is easy to avoid, since in this case the std::ofstream can be a local variable, and that is a better approach anyhow. This patch was bootstrapped on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 240275) +++ gcc/go/gofrontend/MERGE (working copy) @@ -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: gcc/go/gofrontend/ast-dump.cc =================================================================== --- gcc/go/gofrontend/ast-dump.cc (revision 240053) +++ gcc/go/gofrontend/ast-dump.cc (working copy) @@ -166,24 +166,24 @@ const char* kAstDumpFileExtension = ".du 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