re PR c++/14616 (disjoint_set_test.cpp from boost does not compile (sizeof))

PR c++/14616
	* decl.c (cp_finish_decl): Compute the size of arrays declared in
	templates, if their type is non-dependent.

	PR c++/14616
	* g++.dg/init/array13.C: New test.

From-SVN: r79788
This commit is contained in:
Mark Mitchell 2004-03-21 17:48:39 +00:00 committed by Mark Mitchell
parent 0f005f338f
commit fc5fccdee9
4 changed files with 24 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2004-03-21 Mark Mitchell <mark@codesourcery.com>
PR c++/14616
* decl.c (cp_finish_decl): Compute the size of arrays declared in
templates, if their type is non-dependent.
2004-03-19 Mark Mitchell <mark@codesourcery.com>
* call.c (build_op_delete_call): Do not forget the placement

View file

@ -4711,6 +4711,10 @@ cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
if (init && DECL_INITIAL (decl))
DECL_INITIAL (decl) = init;
if (TREE_CODE (decl) == VAR_DECL
&& !DECL_PRETTY_FUNCTION_P (decl)
&& !dependent_type_p (TREE_TYPE (decl)))
maybe_deduce_size_from_array_init (decl, init);
goto finish_end0;
}

View file

@ -1,3 +1,8 @@
2004-03-21 Mark Mitchell <mark@codesourcery.com>
PR c++/14616
* g++.dg/init/array13.C: New test.
2004-03-20 Roger Sayle <roger@eyesopen.com>
PR target/13889

View file

@ -0,0 +1,9 @@
template <typename DisjointSet>
struct test_disjoint_set {
static void do_test()
{
unsigned int elts[]
= { 0, 1, 2, 3 };
const int N = sizeof(elts)/sizeof(*elts);
}
};