Commit 6699d593 by Zack Weinberg

* g++.dg/eh/forced1.C, g++.dg/eh/forced2.C, g++.dg/eh/forced3.C

	* g++.dg/eh/forced4.C: XFAIL ia64-hp-hpux11.*.
	* g++.dg/eh/ia64-1.C: Test branch regs only #ifdef __LP64__.
	* gcc.dg/cleanup-5.c: Run only on Linux targets.

From-SVN: r77134
parent ef2c1035
2004-02-02 Zack Weinberg <zack@codesourcery.com>
* g++.dg/eh/forced1.C, g++.dg/eh/forced2.C, g++.dg/eh/forced3.C
* g++.dg/eh/forced4.C: XFAIL ia64-hp-hpux11.*.
* g++.dg/eh/ia64-1.C: Test branch regs only #ifdef __LP64__.
* gcc.dg/cleanup-5.c: Run only on Linux targets.
2004-02-02 Mark Mitchell <mark@codesourcery.com> 2004-02-02 Mark Mitchell <mark@codesourcery.com>
PR c++/13113 PR c++/13113
......
// { dg-do run } // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
// { dg-do run { xfail "ia64-hp-hpux11.*" } }
// Test that forced unwinding runs all cleanups. Also tests that // Test that forced unwinding runs all cleanups. Also tests that
// rethrowing doesn't call the exception object destructor. // rethrowing doesn't call the exception object destructor.
......
// { dg-do run } // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
// { dg-do run { xfail "ia64-hp-hpux11.*" } }
// Test that leaving the catch block without rethrowing // Test that leaving the catch block without rethrowing
// does call the exception object destructor. // does call the exception object destructor.
......
// { dg-do run } // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
// { dg-do run { xfail "ia64-hp-hpux11.*" } }
// Test that forced unwinding calls std::unexpected going // Test that forced unwinding calls std::unexpected going
// throw a nothrow function. // throw a nothrow function.
......
// { dg-do run } // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
// { dg-do run { xfail "ia64-hp-hpux11.*" } }
// Test that forced unwinding does not call std::unexpected going // Test that forced unwinding does not call std::unexpected going
// throw a function with a non-empty exception spec. // throw a function with a non-empty exception spec.
......
// Test whether call saved float and branch regs are restored properly // Test whether call saved float and branch regs are restored properly
// We can't do this test for branch regs in ILP32 mode.
// { dg-do run { target ia64-*-* } } // { dg-do run { target ia64-*-* } }
// { dg-options "-O2" } // { dg-options "-O2" }
extern "C" void abort (void); extern "C" void abort (void);
#ifdef __LP64__
char buf[128]; char buf[128];
#endif
void __attribute__((noinline)) void __attribute__((noinline))
bar (void) bar (void)
...@@ -28,13 +31,17 @@ main (void) ...@@ -28,13 +31,17 @@ main (void)
register double f5 __asm ("f5"); register double f5 __asm ("f5");
register double f16 __asm ("f16"); register double f16 __asm ("f16");
register double f17 __asm ("f17"); register double f17 __asm ("f17");
#ifdef __LP64__
register void *b1 __asm ("b1"); register void *b1 __asm ("b1");
register void *b2 __asm ("b2"); register void *b2 __asm ("b2");
register void *b3 __asm ("b3"); register void *b3 __asm ("b3");
register void *b4 __asm ("b4"); register void *b4 __asm ("b4");
register void *b5 __asm ("b5"); register void *b5 __asm ("b5");
#endif
f2 = 12.0; f3 = 13.0; f4 = 14.0; f5 = 15.0; f16 = 16.0; f17 = 17.0; f2 = 12.0; f3 = 13.0; f4 = 14.0; f5 = 15.0; f16 = 16.0; f17 = 17.0;
#ifdef __LP64__
b1 = &buf[1]; b2 = &buf[2]; b3 = &buf[3]; b4 = &buf[4]; b5 = &buf[5]; b1 = &buf[1]; b2 = &buf[2]; b3 = &buf[3]; b4 = &buf[4]; b5 = &buf[5];
#endif
try try
{ {
foo (); foo ();
...@@ -43,8 +50,10 @@ main (void) ...@@ -43,8 +50,10 @@ main (void)
if (f2 != 12.0 || f3 != 13.0 || f4 != 14.0 if (f2 != 12.0 || f3 != 13.0 || f4 != 14.0
|| f5 != 15.0 || f16 != 16.0 || f17 != 17.0) || f5 != 15.0 || f16 != 16.0 || f17 != 17.0)
abort (); abort ();
#ifdef __LP64__
if (b1 != &buf[1] || b2 != &buf[2] || b3 != &buf[3] if (b1 != &buf[1] || b2 != &buf[2] || b3 != &buf[3]
|| b4 != &buf[4] || b5 != &buf[5]) || b4 != &buf[4] || b5 != &buf[5])
abort (); abort ();
#endif
return 0; return 0;
} }
/* { dg-do run } */ /* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* mips*-*-linux* } } */
/* { dg-options "-fexceptions" } */ /* { dg-options "-fexceptions" } */
/* Verify that cleanups work with exception handling. */ /* Verify that cleanups work with exception handling. */
......
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