diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/static1.C | 16 |
4 files changed, 30 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8776b1f..410c88f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-11-02 Mark Mitchell <mark@codesourcery.com> + + PR c++/24569 + * pt.c (instantiate_decl): Use cp_finish_decl, not + finish_static_data_member_decl. + 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu> * decl.c (grokfndecl): Remove the setting diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 62db122..ecfc6d1 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -11630,10 +11630,9 @@ instantiate_decl (tree d, int defer_ok, init = tsubst_expr (DECL_INITIAL (code_pattern), args, tf_error | tf_warning, NULL_TREE); - DECL_INITIAL (d) = NULL_TREE; - finish_static_data_member_decl (d, init, - /*asmspec_tree=*/NULL_TREE, - LOOKUP_ONLYCONVERTING); + DECL_INITIAL (d) = init; + cp_finish_decl (d, init, /*asmspec_tree=*/NULL_TREE, + LOOKUP_ONLYCONVERTING); pop_nested_class (); pop_nested_namespace (ns); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fd31f90..04a3342 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-11-02 Mark Mitchell <mark@codesourcery.com> + + PR c++/24569 + * g++.dg/debug/static1.C: New test. + 2005-11-02 Josh Conner <jconner@apple.com> * g++.dg/crash38.C: moved into proper directory... diff --git a/gcc/testsuite/g++.dg/debug/static1.C b/gcc/testsuite/g++.dg/debug/static1.C new file mode 100644 index 0000000..7419ce5 --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/static1.C @@ -0,0 +1,16 @@ +// PR c++/24569 + +template <int dim> +struct S +{ + static const int u = 2 * dim; + static const int p[u]; + static int f(); +}; + +template <> +inline int S<3>::f () { return 1; } + +template <int dim> const int S<dim>::u; + +template class S<3>; |