(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
eh/
builtin7.C
// PR c++/88482
// { dg-do compile }

extern "C" void __cxa_throw (void *, void *, void (*) (void *));
int __cxa_get_exception_ptr;		// { dg-message "previous declaration" }
extern "C" void *__cxa_begin_catch (void *) throw ();
extern "C" void __cxa_end_catch ();
extern "C" void __cxa_rethrow ();
extern "C" void *__cxa_allocate_exception (__SIZE_TYPE__) throw ();
int __cxa_free_exception;		// { dg-message "previous declaration" }

struct S { S (); S (const S &); ~S (); };

int
foo (int x)
{
  if (x > 27)
    throw 19; // { dg-error "redeclared"  }
  try
    {
      if (x > 15)
	throw S ();
    }
  catch (S s) // { dg-error "redeclared"  }
    {
      throw;
    }
  return x + 3;
}