From: Janis Johnson Date: Wed, 25 Jul 2012 22:09:28 +0000 (+0000) Subject: * g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking. X-Git-Tag: releases/gcc-4.8.0~4268 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1acc33406fdf0d0eec647e2e5c6d02ce67a6e50d;p=thirdparty%2Fgcc.git * g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking. From-SVN: r189870 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 495624faf7cb..ff338d5fab3a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2012-07-25 Janis Johnson + + * g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking. + 2012-07-25 Eric Botcazou * gnat.dg/noreturn5.ad[sb]: New test. diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr21.C b/gcc/testsuite/g++.dg/cpp0x/nullptr21.C index c30cb3c8b6de..8362bd2965b7 100644 --- a/gcc/testsuite/g++.dg/cpp0x/nullptr21.C +++ b/gcc/testsuite/g++.dg/cpp0x/nullptr21.C @@ -3,42 +3,53 @@ // Test throw and catch -#include +extern "C" void abort (void); typedef decltype(nullptr) nullptr_t; +int result[2]; + +void __attribute__((noinline)) +foo (int i, int j) +{ + result[i] = j; +} + int main() { try { throw nullptr; } catch (void*) { - printf("Test 1 Fail"); + foo (0, 1); } catch (bool) { - printf("Test 1 Fail"); + foo (0, 2); } catch (int) { - printf("Test 1 Fail"); + foo (0, 3); } catch (long int) { - printf("Test 1 Fail"); + foo (0, 4); } catch (nullptr_t) { - printf("Test 1 OK"); + foo (0, 5); } catch (...) { - printf("Test 1 Fail"); - } // { dg-output "Test 1 OK" } + foo (0, 6); + } nullptr_t mynull = 0; try { throw mynull; } catch (void*) { - printf("Test 2 Fail"); + foo (1, 1); } catch (bool) { - printf("Test 2 Fail"); + foo (1, 2); } catch (int) { - printf("Test 2 Fail"); + foo (1, 3); } catch (long int) { - printf("Test 2 Fail"); + foo (1, 4); } catch (nullptr_t) { - printf("Test 2 OK"); + foo (1, 5); } catch (...) { - printf("Test 2 Fail"); - } // { dg-output "Test 2 OK" } + foo (1, 6); + } + + if (result[0] != 5 || result[1] != 5) + abort (); }