method.c (make_thunk): Clear DECL_CLONED_FUNCTION.

cp:
	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
testsuite:
	* g++.old-deja/g++.other/crash40.C: New test.

From-SVN: r41294
This commit is contained in:
Nathan Sidwell 2001-04-12 07:42:17 +00:00 committed by Nathan Sidwell
parent 571a66c6c9
commit bbb53468cc
4 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2001-04-12 Nathan Sidwell <nathan@codesourcery.com>
* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
2001-04-11 Mark Mitchell <mark@codesourcery.com>
* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the

View File

@ -363,6 +363,8 @@ make_thunk (function, delta, vcall_index, generate_with_vtable_p)
DECL_SAVED_FUNCTION_DATA (thunk) = NULL;
DECL_DESTRUCTOR_P (thunk) = 0;
DECL_CONSTRUCTOR_P (thunk) = 0;
/* And neither is it a clone. */
DECL_CLONED_FUNCTION (thunk) = NULL_TREE;
DECL_EXTERNAL (thunk) = 1;
DECL_ARTIFICIAL (thunk) = 1;
/* Even if this thunk is a member of a local class, we don't

View File

@ -1,3 +1,7 @@
2001-04-12 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.other/crash40.C: New test.
2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.c-torture/execute/20010122-1.c: Fix declaration of alloca.

View File

@ -0,0 +1,19 @@
// Build don't link:
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 11 April 2001 <nathan@codesourcery.com>
// Origin: Theo Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
// Bug 1917. We were considering thunks to clones to be clones. and
// hence getting confused.
struct A { virtual ~A(); };
struct B { virtual ~B(); };
struct C: public A,B {};
template <class TYPE>
inline TYPE
sqr(const TYPE& x) {
return 1;
}
int f(const int t) { return sqr(t); }