unbreak fuzzers for clang16

getopt() needs a throw() attribute to compile, so supply one when compiling
things with C++
This commit is contained in:
Damien Miller 2024-01-08 14:45:14 +11:00
parent a72833d007
commit 9ea0a4524a
No known key found for this signature in database
2 changed files with 19 additions and 3 deletions

View File

@ -33,6 +33,14 @@
#ifndef _GETOPT_H_
#define _GETOPT_H_
#ifndef __THROW
# if defined __cplusplus
# define __THROW throw()
# else
# define __THROW
# endif
#endif
/*
* GNU-like getopt_long() and 4.4BSD getsubopt()/optreset extensions
*/
@ -63,8 +71,8 @@ int getopt_long_only(int, char * const *, const char *,
#ifndef _GETOPT_DEFINED_
#define _GETOPT_DEFINED_
int getopt(int, char * const *, const char *);
int getsubopt(char **, char * const *, char **);
int getopt(int, char * const *, const char *) __THROW;
int getsubopt(char **, char * const *, char **) __THROW;
extern char *optarg; /* getopt(3) external variables */
extern int opterr;

View File

@ -48,6 +48,14 @@
#include "blf.h"
#include "fnmatch.h"
#ifndef __THROW
# if defined __cplusplus
# define __THROW throw()
# else
# define __THROW
# endif
#endif
#if defined(HAVE_LOGIN_CAP) && !defined(HAVE_LOGIN_GETPWCLASS)
# include <login_cap.h>
# define login_getpwclass(pw) login_getclass(pw->pw_class)
@ -187,7 +195,7 @@ int getgrouplist(const char *, gid_t, gid_t *, int *);
#endif
#if !defined(HAVE_GETOPT) || !defined(HAVE_GETOPT_OPTRESET)
int BSDgetopt(int argc, char * const *argv, const char *opts);
int BSDgetopt(int argc, char * const *argv, const char *opts) __THROW;
#include "openbsd-compat/getopt.h"
#endif