except.c (expand_throw): Make sure first argument to __cp_push_exception is of type `void*' to avoid...

* except.c (expand_throw): Make sure first argument to
	__cp_push_exception is of type `void*' to avoid spurious error
	messages.

From-SVN: r23639
This commit is contained in:
Mark Mitchell 1998-11-13 13:02:24 +00:00 committed by Mark Mitchell
parent 93d9a2ebd8
commit bbeeb2b020
3 changed files with 23 additions and 4 deletions

View File

@ -1,3 +1,9 @@
1998-11-13 Mark Mitchell <mark@markmitchell.com>
* except.c (expand_throw): Make sure first argument to
__cp_push_exception is of type `void*' to avoid spurious error
messages.
1998-11-11 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (try_one_overload): Take orig_targs again. Only check for

View File

@ -998,10 +998,7 @@ expand_throw (exp)
}
if (TREE_CODE (TREE_TYPE (exp)) == POINTER_TYPE)
{
throw_type = build_eh_type (exp);
exp = build_reinterpret_cast (ptr_type_node, exp);
}
throw_type = build_eh_type (exp);
else
{
tree object, ptr;
@ -1075,6 +1072,10 @@ expand_throw (exp)
exp = ptr;
}
/* Cast EXP to `void *' so that it will match the prototype for
__cp_push_exception. */
exp = build_reinterpret_cast (ptr_type_node, exp);
if (cleanup == NULL_TREE)
{
cleanup = build_int_2 (0, 0);

View File

@ -0,0 +1,12 @@
// Build don't link:
void athrow(const int & e) throw(int)
{
throw e;
}
int main(void)
{
athrow(int());
return 0;
}