]> granicus.if.org Git - sudo/commitdiff
Use __attribute__((__noreturn__))
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 30 Sep 2004 17:55:21 +0000 (17:55 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 30 Sep 2004 17:55:21 +0000 (17:55 +0000)
compat.h
sudo.c
visudo.c

index a049a1a32f6a85cc341450f0cb19170aed429599..c4eaeee0593e156365315d3b569478e97b0f2504 100644 (file)
--- a/compat.h
+++ b/compat.h
 # endif
 #endif /* __P */
 
+/* Define away __attribute__ for non-gcc or old gcc */
+#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC__ == 2 && __GNUC_MINOR__ < 5
+#define __attribute__(x)
+#endif
+
 /*
  * Some systems lack full limit definitions.
  */
diff --git a/sudo.c b/sudo.c
index e4314423858e22c62daf2d8b5effd13b91a08e67..ed4e01c54c4d11a2d34ddee4bbed8e601b26a2aa 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -103,8 +103,10 @@ static int init_vars                       __P((int));
 static int parse_args                  __P((int, char **));
 static void initial_setup              __P((void));
 static void set_loginclass             __P((struct passwd *));
-static void usage                      __P((int));
-static void usage_excl                 __P((int));
+static void usage                      __P((int))
+                                           __attribute__((__noreturn__));
+static void usage_excl                 __P((int))
+                                           __attribute__((__noreturn__));
 static struct passwd *get_authpw       __P((void));
 extern int sudo_edit                   __P((int, char **));
 extern void list_matches               __P((void));
index 257390742567521c8a03f7f6d0a00c22d3c2c95e..47b2353252cbb67ed0fdd4c6812dddcac20a5bf7 100644 (file)
--- a/visudo.c
+++ b/visudo.c
@@ -94,9 +94,11 @@ struct sudoersfile {
 /*
  * Function prototypes
  */
-static void usage              __P((void));
+static void usage              __P((void))
+                                   __attribute__((__noreturn__));
 static char whatnow            __P((void));
-static RETSIGTYPE Exit         __P((int));
+static RETSIGTYPE Exit         __P((int))
+                                   __attribute__((__noreturn__));
 static void setup_signals      __P((void));
 static int run_command         __P((char *, char **));
 static int check_syntax                __P((char *));
@@ -112,8 +114,10 @@ int usergr_matches         __P((char *, char *, struct passwd *));
 int userpw_matches             __P((char *, char *, struct passwd *));
 void yyerror                   __P((const char *));
 void yyrestart                 __P((FILE *));
-void Err                       __P((int, const char *, ...));
-void Errx                      __P((int, const char *, ...));
+void Err                       __P((int, const char *, ...))
+                                   __attribute__((__noreturn__));
+void Errx                      __P((int, const char *, ...))
+                                   __attribute__((__noreturn__));
 
 /*
  * External globals exported by the parser