Please try the attached patch.
From 260704a9164dd34cf7128d6b1e88075ffa3be054 Mon Sep 17 00:00:00 2001
From: Thien-Thi Nguyen <[email protected]>
Date: Thu, 18 Jun 2015 21:25:53 +0200
Subject: [PATCH] =?UTF-8?q?[C=20slog]=20Move=20=E2=80=98exiting=E2=80=99?=
 =?UTF-8?q?=20to=20beginning=20of=20func=20decl.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Apparently, ‘gcc --std=c11’ does not abide the ‘exiting’
attribute appearing at the end of the func decl.
Reported by Romain Francoise.
See also <https://bugs.debian.org/778100>.

* src/b-complain.h (generic_fatal, fatal_syntax, fatal_sys)
* src/b-fb.h (Ierror, Oerror)
* src/base.h (unexpected_EOF, thank_you_and_goodnight):
Move ‘exiting’ attribute to beginning of func decl.
---
 src/ChangeLog    | 14 ++++++++++++++
 src/b-complain.h | 10 ++++++----
 src/b-fb.h       |  6 ++++--
 src/base.h       |  8 ++++----
 4 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index bb31f05..a2ef6a3 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
+2015-06-18  Thien-Thi Nguyen  <[email protected]>
+
+       [C slog] Move ‘exiting’ to beginning of func decl.
+
+       Apparently, ‘gcc --std=c11’ does not abide the ‘exiting’
+       attribute appearing at the end of the func decl.
+       Reported by Romain Francoise.
+       See also <https://bugs.debian.org/778100>.
+
+       * b-complain.h (generic_fatal, fatal_syntax, fatal_sys)
+       * b-fb.h (Ierror, Oerror)
+       * base.h (unexpected_EOF, thank_you_and_goodnight):
+       Move ‘exiting’ attribute to beginning of func decl.
+
 2015-02-19  Thien-Thi Nguyen  <[email protected]>
 
        [int] Add abstraction: accumulate_nbytes
diff --git a/src/b-complain.h b/src/b-complain.h
index 0ffd157..ea0ffc5 100644
--- a/src/b-complain.h
+++ b/src/b-complain.h
@@ -32,12 +32,14 @@ extern void generic_warn (char const *who, char const *fmt, 
...)
   printf_string (2, 3);
 extern void generic_error (char const *who, char const *fmt, ...)
   printf_string (2, 3);
+exiting
 extern void generic_fatal (char const *who, char const *fmt, ...)
-  printf_string (2, 3) exiting;
+  printf_string (2, 3);
+exiting
 extern void fatal_syntax (size_t lno, char const *fmt, ...)
-  printf_string (2, 3) exiting;
-extern void fatal_sys (char const *who)
-  exiting;
+  printf_string (2, 3);
+exiting
+extern void fatal_sys (char const *who);
 
 /* Idioms.  Here, prefix P stands for "program" (general operation);
    M for "manifestation"; R for "repository".  */
diff --git a/src/b-fb.h b/src/b-fb.h
index c9850e7..bf5eaf8 100644
--- a/src/b-fb.h
+++ b/src/b-fb.h
@@ -21,9 +21,11 @@
 */
 
 extern int change_mode (int fd, mode_t mode);
-extern void Ierror (void) exiting;
+exiting
+extern void Ierror (void);
 extern void testIerror (FILE *f);
-extern void Oerror (void) exiting;
+exiting
+extern void Oerror (void);
 extern void testOerror (FILE *o);
 extern FILE *fopen_safer (char const *filename, char const *type);
 extern void Ozclose (FILE **p);
diff --git a/src/base.h b/src/base.h
index 163ee09..5e7a9f8 100644
--- a/src/base.h
+++ b/src/base.h
@@ -755,8 +755,8 @@ int dorewrite (bool lockflag, int changed);
 int donerewrite (int changed, time_t newRCStime);
 void ORCSclose (void);
 void ORCSerror (void);
-void unexpected_EOF (void)
-  exiting;
+exiting
+void unexpected_EOF (void);
 void initdiffcmd (struct diffcmd *dc);
 int getdiffcmd (struct fro *finfile, bool delimiter,
                 FILE *foutfile, struct diffcmd *dc);
@@ -831,8 +831,8 @@ char const *date2str (char const date[datesize],
                       char datebuf[datesize + zonelenmax]);
 
 /* rcsutil */
-void thank_you_and_goodnight (int const how)
-  exiting;
+exiting
+void thank_you_and_goodnight (int const how);
 /* These are for ‘thank_you_and_goodnight’.  */
 #define TYAG_ORCSERROR     (1 << 3)
 #define TYAG_DIRTMPUNLINK  (1 << 2)
-- 
2.1.0

Reply via email to