re PR c++/17775 (-frepo with function template in anonymous namespace fails to compile)

PR c++/17775
	* repo.c: Include flags.h.
	(finish_repo): Add -frandom-seed to the arguments.
	PR c++/17775
	* g++.dg/template/repo4.C: New test.

From-SVN: r104898
This commit is contained in:
Mark Mitchell 2005-10-03 17:21:40 +00:00 committed by Mark Mitchell
parent 39d164680d
commit 198438344c
4 changed files with 38 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2005-10-03 Mark Mitchell <mark@codesourcery.com>
PR c++/17775
* repo.c: Include flags.h.
(finish_repo): Add -frandom-seed to the arguments.
2005-10-02 Mark Mitchell <mark@codesourcery.com>
PR c++/22621

View file

@ -36,6 +36,7 @@ Boston, MA 02110-1301, USA. */
#include "obstack.h"
#include "toplev.h"
#include "diagnostic.h"
#include "flags.h"
static char *extract_string (char **);
static const char *get_base_filename (const char *);
@ -239,7 +240,16 @@ finish_repo (void)
fprintf (repo_file, "D %s\n", dir);
args = getenv ("COLLECT_GCC_OPTIONS");
if (args)
fprintf (repo_file, "A %s\n", args);
{
fprintf (repo_file, "A %s", args);
/* If -frandom-seed is not among the ARGS, then add the value
that we chose. That will ensure that the names of types from
anonymous namespaces will get the same mangling when this
file is recompiled. */
if (!strstr (args, "'-frandom-seed="))
fprintf (repo_file, " '-frandom-seed=%s'", flag_random_seed);
fprintf (repo_file, "\n");
}
for (t = pending_repo; t; t = TREE_CHAIN (t))
{

View file

@ -1,3 +1,8 @@
2005-10-03 Mark Mitchell <mark@codesourcery.com>
PR c++/17775
* g++.dg/template/repo4.C: New test.
2005-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/19308

View file

@ -0,0 +1,16 @@
// PR c++/17775
// { dg-options "-frepo" }
// { dg-final { cleanup-repo-files } }
namespace {
struct Foo {};
}
template <typename Tp>
void foo(Tp) {}
int
main()
{
foo(Foo());
}