Commit 5e65d3ee by Mark Mitchell Committed by Mark Mitchell

decl2.c (mark_vtable_entries): Don't make a copy of a function, and then make it look like `abort'.

	* decl2.c (mark_vtable_entries): Don't make a copy of a function,
	and then make it look like `abort'.  Just use `abort' instead.

From-SVN: r27131
parent 590e30e7
1999-05-24 Mark Mitchell <mark@codesourcery.com>
* decl2.c (mark_vtable_entries): Don't make a copy of a function,
and then make it look like `abort'. Just use `abort' instead.
* typeck.c (build_static_cast): Don't allow static_casts that cast
away constness.
(casts_away_constness_r): New function.
......
......@@ -2424,8 +2424,7 @@ mark_vtable_entries (decl)
TREE_ADDRESSABLE (fn) = 1;
if (DECL_LANG_SPECIFIC (fn) && DECL_ABSTRACT_VIRTUAL_P (fn))
{
TREE_OPERAND (fnaddr, 0) = fn = copy_node (fn);
DECL_RTL (fn) = DECL_RTL (abort_fndecl);
TREE_OPERAND (fnaddr, 0) = abort_fndecl;
mark_used (abort_fndecl);
}
if (TREE_CODE (fn) == THUNK_DECL && DECL_EXTERNAL (fn))
......
// Build don't link:
// Origin: Mark Mitchell <mark@codesourcery.com>
template <class T>
struct B
{
virtual void f() = 0;
};
template <class T>
struct D : public B<T> {
virtual void f();
};
void g() {
B<int>* bi = new D<int>;
};
template <class T>
void B<T>::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