modules/_Exit-tests: test _Noreturn too
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 12 Jul 2011 08:16:45 +0000 (01:16 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 12 Jul 2011 08:16:45 +0000 (01:16 -0700)
* tests/test-_Exit.c (MTA, Charlie): New functions, taken from the
old tests/test-stdnoreturn.c.  This tests the _Noreturn keyword a bit.
(main): Use them.

ChangeLog
tests/test-_Exit.c

index 551943d3f5fa4e630b5fabb0d25e97a7b0cda6c0..84e49fda66cd6d941dce3f464913db87e4375bf2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2011-07-12  Paul Eggert  <eggert@cs.ucla.edu>
 
+       modules/_Exit-tests: test _Noreturn too
+       * tests/test-_Exit.c (MTA, Charlie): New functions, taken from the
+       old tests/test-stdnoreturn.c.  This tests the _Noreturn keyword a bit.
+       (main): Use them.
+
        stdnoreturn, stdnoreturn-tests: remove modules
        They're not needed here and a bit premature for use elsewhere.  See
        <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00209.html>.
index 7502153273d308d4c6ba6996f482e8b5b82e78dd..bc00730460c44afbbefdf9918756aa4d8903bf59 100644 (file)
 
 #include <stdlib.h>
 
+/* But did he ever return?  No he never returned,
+   And his fate is still unlearned ... */
+static _Noreturn void MTA (int);
+
+static _Noreturn void
+Charlie (int n)
+{
+  MTA (n - 1);
+}
+
+static void
+MTA (int n)
+{
+  if (n < 0)
+    _Exit (81);
+  Charlie (n - 1);
+}
+
 int
-main ()
+main (int argc, char **argv)
 {
-  _Exit (81);
+  MTA (argc + !!argv);
 }