Commit 2aa3110a by Mark Mitchell Committed by Mark Mitchell

decl.c (start_function): Set x_dont_save_pending_sizes rather than calling get_pending_sizes.

	* decl.c (start_function): Set x_dont_save_pending_sizes rather
	than calling get_pending_sizes.
	* init.c (build_new): Don't save and restore
	immediate_size_expand; instead, assert that it has the expected
	value already.

From-SVN: r29669
parent d43163b7
1999-09-26 Mark Mitchell <mark@codesourcery.com>
* decl.c (start_function): Set x_dont_save_pending_sizes rather
than calling get_pending_sizes.
* init.c (build_new): Don't save and restore
immediate_size_expand; instead, assert that it has the expected
value already.
1999-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* lex.c (compiler_error): Add missing call to va_end().
......
......@@ -12915,7 +12915,7 @@ start_function (declspecs, declarator, attrs, flags)
We haven't necessarily assigned RTL to all variables yet, so it's
not safe to try to expand expressions involving them. */
immediate_size_expand = 0;
get_pending_sizes ();
current_function->x_dont_save_pending_sizes_p = 1;
/* Let the user know we're compiling this function. */
if (processing_template_decl || !building_stmt_tree ())
......
......@@ -1909,14 +1909,10 @@ build_new (placement, decl, init, use_global_new)
{
tree absdcl = TREE_VALUE (decl);
tree last_absdcl = NULL_TREE;
int old_immediate_size_expand = 0;
if (current_function_decl
&& DECL_CONSTRUCTOR_P (current_function_decl))
{
old_immediate_size_expand = immediate_size_expand;
immediate_size_expand = 0;
}
my_friendly_assert (immediate_size_expand == 0, 19990926);
nelts = integer_one_node;
......@@ -1980,17 +1976,7 @@ build_new (placement, decl, init, use_global_new)
type = groktypename (decl);
if (! type || type == error_mark_node)
{
immediate_size_expand = old_immediate_size_expand;
return error_mark_node;
}
if (current_function_decl
&& DECL_CONSTRUCTOR_P (current_function_decl))
{
pending_sizes = get_pending_sizes ();
immediate_size_expand = old_immediate_size_expand;
}
return error_mark_node;
}
else if (TREE_CODE (decl) == IDENTIFIER_NODE)
{
......
// Build don't link:
// Origin: Alfred Minarik <a8601248@unet.univie.ac.at>
// Special g++ Options:
template<typename T>
struct S
{
void f() {}
};
int main()
{
S<int> s;
int len = 50;
char array[len];
s.f();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment