Remove -Wwrite-strings compiler flag

The "-Wwrite-strings" flag produces nuisance warnings. These warnings are
not useful, they're impossible to fix in a sane way and therefore are being
handled with casts of static strings to (char *).

This just moves the warning to [-Wcast-qual] and a compiler pragma is
in turn required (and used) to squelch that warning.

Remove the Wwrite-strings warning. Let that responsibility fall on the
programmer (as is done by casting).

Change-Id: I5a44dfd9decd6d80797a521a3373593074962fb5
Reviewed-on: https://code.wireshark.org/review/12162
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
João Valverde 2015-11-21 23:48:27 +00:00 committed by Michael Mann
parent 95142cf09d
commit 2aab706c5a
29 changed files with 81 additions and 109 deletions

View File

@ -359,7 +359,6 @@ else()
-Wignored-qualifiers
-Wpragmas
-Wno-overlength-strings
-Wwrite-strings
-Wno-long-long
-Wheader-guard
-Wunused-const-variable

View File

@ -1394,13 +1394,11 @@ main(int argc, char *argv[])
gchar *err_info;
int opt;
int overall_error_status;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
int status = 0;
#ifdef HAVE_PLUGINS

View File

@ -79,7 +79,7 @@ extern "C" {
#ifdef CAN_SET_CAPTURE_BUFFER_SIZE
#define LONGOPT_BUFFER_SIZE \
{(char *)"buffer-size", required_argument, NULL, 'B'},
{"buffer-size", required_argument, NULL, 'B'},
#define OPTSTRING_B "B:"
#else
#define LONGOPT_BUFFER_SIZE
@ -87,7 +87,7 @@ extern "C" {
#endif
#ifdef HAVE_PCAP_CREATE
#define LONGOPT_MONITOR_MODE {(char *)"monitor-mode", no_argument, NULL, 'I'},
#define LONGOPT_MONITOR_MODE {"monitor-mode", no_argument, NULL, 'I'},
#define OPTSTRING_I "I"
#else
#define LONGOPT_MONITOR_MODE
@ -95,20 +95,20 @@ extern "C" {
#endif
#define LONGOPT_CAPTURE_COMMON \
{(char *)"capture-comment", required_argument, NULL, LONGOPT_NUM_CAP_COMMENT}, \
{(char *)"autostop", required_argument, NULL, 'a'}, \
{(char *)"ring-buffer", required_argument, NULL, 'b'}, \
{"capture-comment", required_argument, NULL, LONGOPT_NUM_CAP_COMMENT}, \
{"autostop", required_argument, NULL, 'a'}, \
{"ring-buffer", required_argument, NULL, 'b'}, \
LONGOPT_BUFFER_SIZE \
{(char *)"list-interfaces", no_argument, NULL, 'D'}, \
{(char *)"interface", required_argument, NULL, 'i'}, \
{"list-interfaces", no_argument, NULL, 'D'}, \
{"interface", required_argument, NULL, 'i'}, \
LONGOPT_MONITOR_MODE \
{(char *)"list-data-link-types", no_argument, NULL, 'L'}, \
{(char *)"no-promiscuous-mode", no_argument, NULL, 'p'}, \
{(char *)"snapshot-length", required_argument, NULL, 's'}, \
{(char *)"linktype", required_argument, NULL, 'y'}, \
{(char *)"disable-protocol", required_argument, NULL, LONGOPT_DISABLE_PROTOCOL }, \
{(char *)"enable-heuristic", required_argument, NULL, LONGOPT_ENABLE_HEURISTIC }, \
{(char *)"disable-heuristic", required_argument, NULL, LONGOPT_DISABLE_HEURISTIC },
{"list-data-link-types", no_argument, NULL, 'L'}, \
{"no-promiscuous-mode", no_argument, NULL, 'p'}, \
{"snapshot-length", required_argument, NULL, 's'}, \
{"linktype", required_argument, NULL, 'y'}, \
{"disable-protocol", required_argument, NULL, LONGOPT_DISABLE_PROTOCOL }, \
{"enable-heuristic", required_argument, NULL, LONGOPT_ENABLE_HEURISTIC }, \
{"disable-heuristic", required_argument, NULL, LONGOPT_DISABLE_HEURISTIC },
#define OPTSTRING_CAPTURE_COMMON \
"a:" OPTSTRING_A "b:" OPTSTRING_B "c:Df:i:" OPTSTRING_I "Lps:y:"

View File

@ -122,13 +122,11 @@ main(int argc, char *argv[])
int i;
int opt;
int overall_error_status;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
#ifdef HAVE_PLUGINS
char *init_progfile_dir_error;

View File

@ -964,7 +964,6 @@ AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdiv-by-zero)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wignored-qualifiers)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpragmas)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-overlength-strings)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wwrite-strings)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-long-long)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wheader-guard)
AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunused-const-variable)

View File

@ -4317,14 +4317,12 @@ main(int argc, char *argv[])
GString *comp_info_str;
GString *runtime_info_str;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
LONGOPT_CAPTURE_COMMON
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
gboolean arg_error = FALSE;

View File

@ -920,13 +920,11 @@ main(int argc, char *argv[])
int i, j, read_err, write_err;
gchar *read_err_info, *write_err_info;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'V'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
char *p;
guint32 snaplen = 0; /* No limit */

View File

@ -1958,8 +1958,8 @@ proto_reg_handoff_bluetooth(void)
dissector_add_for_decode_as("usb.device", bluetooth_usb_handle);
wmem_tree_insert_string(bluetooth_uuids, "00000001-0000-1000-8000-0002EE000002", (gchar *) "SyncML Server", 0);
wmem_tree_insert_string(bluetooth_uuids, "00000002-0000-1000-8000-0002EE000002", (gchar *) "SyncML Client", 0);
wmem_tree_insert_string(bluetooth_uuids, "00000001-0000-1000-8000-0002EE000002", "SyncML Server", 0);
wmem_tree_insert_string(bluetooth_uuids, "00000002-0000-1000-8000-0002EE000002", "SyncML Client", 0);
/* TODO: Add UUID128 verion of UUID16; UUID32? UUID16? */
}

View File

@ -6224,7 +6224,7 @@ SpoolssEnumPrinterKey_q(tvbuff_t *tvb, int offset,
hf_printerdata_key, TRUE, &key_name);
if (!key_name[0])
key_name = (char*)"\"\"";
key_name = "\"\"";
col_append_fstr(pinfo->cinfo, COL_INFO, ", %s", key_name);

View File

@ -387,7 +387,7 @@ diameterstat_init(struct register_srt* srt _U_, GArray* srt_array, srt_gui_init_
idx = (int *)g_malloc(sizeof(int));
*idx = 0;
diameterstat_cmd_str_hash = g_hash_table_new(g_str_hash,g_str_equal);
g_hash_table_insert(diameterstat_cmd_str_hash, (gchar *)"Unknown", idx);
g_hash_table_insert(diameterstat_cmd_str_hash, "Unknown", idx);
/** @todo the filter to use in stead of NULL is "diameter.cmd.code"
* to enable the filter popup in the service response time dalouge
@ -1882,7 +1882,7 @@ dictionary_load(void)
all_cmds = g_array_new(TRUE,TRUE,sizeof(value_string));
wmem_tree_insert32(dictionary.vnds,0,&no_vnd);
g_hash_table_insert(vendors,(gchar *)"None",&no_vnd);
g_hash_table_insert(vendors,"None",&no_vnd);
/* initialize the types hash with the known basic types */
for (type = basic_types; type->name; type++) {

View File

@ -2495,14 +2495,14 @@ typedef struct _mq_parm_t
/****************************************************************/
/* Inquire on all properties - "%" */
#define MQ_MQPROP_INQUIRE_ALL (MQPTR)(char*)"%",\
#define MQ_MQPROP_INQUIRE_ALL (MQPTR)"%",\
0,\
0,\
1,\
MQCCSI_APPL
/* Inquire on all 'usr' properties - "usr.%" */
#define MQ_MQPROP_INQUIRE_ALL_USR (MQPTR)(char*)"usr.%",\
#define MQ_MQPROP_INQUIRE_ALL_USR (MQPTR)"usr.%",\
0,\
0,\
5,\

View File

@ -2898,7 +2898,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
if (request) {
guint8 oaction = 0, path_count = 0;
guint16 rights = 0;
gchar* filename = (gchar*)"";
gchar* filename = "";
if (ncp_rec->func == 87) {
switch(ncp_rec->subfunc)

View File

@ -693,24 +693,24 @@ typedef struct _Kind {
} kind_t;
static kind_t predefined_kinds[] = {
{(gchar *)"INVALID" ,DATAKINDID_INVALID, -1},
{(gchar *)"SIP-REGISTRATION" ,DATAKINDID_SIP_REGISTRATION, DATAMODEL_DICTIONARY},
{(gchar *)"TURN-SERVICE" ,DATAKINDID_TURNSERVICE, DATAMODEL_SINGLE},
{(gchar *)"CERTIFICATE_BY_NODE" ,DATAKINDID_CERTIFICATE_BY_NODE, DATAMODEL_ARRAY},
{(gchar *)"RESERVED_ROUTING_TABLE_SIZE" ,DATAKINDID_RESERVED_ROUTING_TABLE_SIZE, -1},
{(gchar *)"RESERVED_SOFTWARE_VERSION" ,DATAKINDID_RESERVED_SOFTWARE_VERSION, -1},
{(gchar *)"RESERVED_MACHINE_UPTIME" ,DATAKINDID_RESERVED_MACHINE_UPTIME, -1},
{(gchar *)"DATAKINDID_RESERVED_APP_UPTIME" ,DATAKINDID_RESERVED_APP_UPTIME, -1},
{(gchar *)"RESERVED_MEMORY_FOOTPRINT" ,DATAKINDID_RESERVED_MEMORY_FOOTPRINT, -1},
{(gchar *)"RESERVED_DATASIZE_STORED" ,DATAKINDID_RESERVED_DATASIZE_STORED, -1},
{(gchar *)"RESERVED_INSTANCES_STORED" ,DATAKINDID_RESERVED_INSTANCES_STORED, -1},
{(gchar *)"RESERVED_MESSAGES_SENT_RCVD" ,DATAKINDID_RESERVED_MESSAGES_SENT_RCVD, -1},
{(gchar *)"RESERVED_EWMA_BYTES_SENT" ,DATAKINDID_RESERVED_EWMA_BYTES_SENT, -1},
{(gchar *)"RESERVED_EWMA_BYTES_RCVD" ,DATAKINDID_RESERVED_EWMA_BYTES_RCVD, -1},
{(gchar *)"RESERVED_LAST_CONTACT" ,DATAKINDID_RESERVED_LAST_CONTACT, -1},
{(gchar *)"RESERVED_RTT" ,DATAKINDID_RESERVED_RTT, -1},
{(gchar *)"CERTIFICATE_BY_USER" ,DATAKINDID_CERTIFICATE_BY_USER, DATAMODEL_ARRAY},
{(gchar *)"REDIR" ,DATAKINDID_REDIR, DATAMODEL_DICTIONARY},
{"INVALID" ,DATAKINDID_INVALID, -1},
{"SIP-REGISTRATION" ,DATAKINDID_SIP_REGISTRATION, DATAMODEL_DICTIONARY},
{"TURN-SERVICE" ,DATAKINDID_TURNSERVICE, DATAMODEL_SINGLE},
{"CERTIFICATE_BY_NODE" ,DATAKINDID_CERTIFICATE_BY_NODE, DATAMODEL_ARRAY},
{"RESERVED_ROUTING_TABLE_SIZE" ,DATAKINDID_RESERVED_ROUTING_TABLE_SIZE, -1},
{"RESERVED_SOFTWARE_VERSION" ,DATAKINDID_RESERVED_SOFTWARE_VERSION, -1},
{"RESERVED_MACHINE_UPTIME" ,DATAKINDID_RESERVED_MACHINE_UPTIME, -1},
{"DATAKINDID_RESERVED_APP_UPTIME" ,DATAKINDID_RESERVED_APP_UPTIME, -1},
{"RESERVED_MEMORY_FOOTPRINT" ,DATAKINDID_RESERVED_MEMORY_FOOTPRINT, -1},
{"RESERVED_DATASIZE_STORED" ,DATAKINDID_RESERVED_DATASIZE_STORED, -1},
{"RESERVED_INSTANCES_STORED" ,DATAKINDID_RESERVED_INSTANCES_STORED, -1},
{"RESERVED_MESSAGES_SENT_RCVD" ,DATAKINDID_RESERVED_MESSAGES_SENT_RCVD, -1},
{"RESERVED_EWMA_BYTES_SENT" ,DATAKINDID_RESERVED_EWMA_BYTES_SENT, -1},
{"RESERVED_EWMA_BYTES_RCVD" ,DATAKINDID_RESERVED_EWMA_BYTES_RCVD, -1},
{"RESERVED_LAST_CONTACT" ,DATAKINDID_RESERVED_LAST_CONTACT, -1},
{"RESERVED_RTT" ,DATAKINDID_RESERVED_RTT, -1},
{"CERTIFICATE_BY_USER" ,DATAKINDID_CERTIFICATE_BY_USER, DATAMODEL_ARRAY},
{"REDIR" ,DATAKINDID_REDIR, DATAMODEL_DICTIONARY},
};

View File

@ -75,8 +75,8 @@ static tvbparse_wanted_t *want_heur;
static GHashTable *xmpli_names;
static GHashTable *media_types;
static xml_ns_t xml_ns = {(gchar *)"xml", "/", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t unknown_ns = {(gchar *)"unknown", "?", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t xml_ns = {"xml", "/", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t unknown_ns = {"unknown", "?", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t *root_ns;
static gboolean pref_heuristic_unicode = FALSE;

View File

@ -254,13 +254,11 @@ main(int argc, char *argv[])
GString *comp_info_str;
GString *runtime_info_str;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'V'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'V'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
gboolean do_append = FALSE;
gboolean verbose = FALSE;
int in_file_count = 0;

View File

@ -133,7 +133,7 @@ wimaxasncp_build_dict_t wimaxasncp_build_dict;
static wimaxasncp_dict_tlv_t wimaxasncp_tlv_not_found =
{
0, (char *)"Unknown", NULL, WIMAXASNCP_TLV_UNKNOWN, 0,
0, "Unknown", NULL, WIMAXASNCP_TLV_UNKNOWN, 0,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
NULL, NULL, NULL
};

View File

@ -86,12 +86,10 @@ main(int argc, char **argv)
guint8* type = NULL;
int allrandom = FALSE;
wtap_dumper *savedump;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{"help", no_argument, NULL, 'h'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
#ifdef _WIN32
arg_list_utf_16to8(argc, argv);

View File

@ -429,13 +429,11 @@ main(int argc, char *argv[])
GPtrArray *disp_fields = g_ptr_array_new();
guint fc;
gboolean skip_pcap_header = FALSE;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
#define OPTSTRING_INIT "d:F:hlnN:o:pr:R:sS:t:v"

View File

@ -195,13 +195,11 @@ main(int argc, char *argv[])
FrameRecord_t *prevFrame = NULL;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
int file_count;
char *infile;
const char *outfile;

View File

@ -1531,13 +1531,11 @@ parse_options (int argc, char *argv[])
GString *runtime_info_str;
int c;
char *p;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
#ifdef _WIN32
arg_list_utf_16to8(argc, argv);

View File

@ -761,13 +761,11 @@ main(int argc, char *argv[])
GString *runtime_info_str;
char *init_progfile_dir_error;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
gboolean arg_error = FALSE;
char *gpf_path, *pf_path;

View File

@ -955,14 +955,12 @@ main(int argc, char *argv[])
GString *runtime_info_str;
char *init_progfile_dir_error;
int opt;
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
LONGOPT_CAPTURE_COMMON
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
gboolean arg_error = FALSE;
#ifdef _WIN32

View File

@ -156,7 +156,7 @@ decode_proto_add_to_list (const gchar *table_name _U_, ftenum_t selector_type,
str = (gchar*)dissector_handle_get_dissector_name(handle);
if (str == NULL)
{
str = (gchar*)"<Unknown>";
str = "<Unknown>";
}
proto_add_to_list(tree_info, store, str, proto_name);
break;

View File

@ -316,7 +316,7 @@ dnd_init(GtkWidget *w)
static GtkTargetEntry target_entry[] = {
/*{"STRING", 0, DND_TARGET_STRING},*/
/*{"text/plain", 0, DND_TARGET_STRING},*/
{(gchar *)"text/uri-list", 0, DND_TARGET_URL}
{"text/uri-list", 0, DND_TARGET_URL}
};
/* set this window as a dnd destination */

View File

@ -1093,7 +1093,7 @@ copy_binary_to_clipboard(const guint8 *data_p,
int len)
{
static GtkTargetEntry target_entry[] = {
{(char *)"application/octet-stream", 0, 0}};
{"application/octet-stream", 0, 0}};
/* XXX - this is not understood by most applications,
* but can be pasted into the better hex editors - is
* there something better that we can do?

View File

@ -2231,17 +2231,15 @@ main(int argc, char *argv[])
GSList *disable_heur_slist = NULL;
#define OPTSTRING OPTSTRING_CAPTURE_COMMON "C:g:Hh" "jJ:kK:lm:nN:o:P:r:R:St:u:vw:X:Y:z:"
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"read-file", required_argument, NULL, 'r' },
{(char *)"read-filter", required_argument, NULL, 'R' },
{(char *)"display-filter", required_argument, NULL, 'Y' },
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"read-file", required_argument, NULL, 'r' },
{"read-filter", required_argument, NULL, 'R' },
{"display-filter", required_argument, NULL, 'Y' },
{"version", no_argument, NULL, 'v'},
LONGOPT_CAPTURE_COMMON
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
static const char optstring[] = OPTSTRING;
#ifdef HAVE_GRESOURCE

View File

@ -156,7 +156,7 @@ rlc_lte_tap_info *select_rlc_lte_session(capture_file *cf,
/* This "shouldn't happen", as the graph menu items won't
* even be enabled if the selected packet isn't an RLC PDU.
*/
*err_msg = (char*)"Selected packet doesn't have an RLC PDU";
*err_msg = "Selected packet doesn't have an RLC PDU";
*free_err_msg = FALSE;
return NULL;
}
@ -164,7 +164,7 @@ rlc_lte_tap_info *select_rlc_lte_session(capture_file *cf,
* to select which session he wants here */
if (th.num_hdrs>1){
/* Can only handle a single RLC channel yet */
*err_msg = (char*)"The selected packet has more than one LTE RLC channel in it.";
*err_msg = "The selected packet has more than one LTE RLC channel in it.";
*free_err_msg = FALSE;
return NULL;
}
@ -294,7 +294,7 @@ gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, gbool
remove_tap_listener(g);
if (g->last_segment == NULL) {
*err_string = (char*)"No packets found";
*err_string = "No packets found";
*free_err_string = FALSE;
return FALSE;
}

View File

@ -616,17 +616,15 @@ int main(int argc, char *argv[])
*/
// XXX Should the remaining code be in WiresharkApplcation::WiresharkApplication?
#define OPTSTRING OPTSTRING_CAPTURE_COMMON "C:g:Hh" "jJ:kK:lm:nN:o:P:r:R:St:u:vw:X:Y:z:"
DIAG_OFF(cast-qual)
static const struct option long_options[] = {
{(char *)"help", no_argument, NULL, 'h'},
{(char *)"read-file", required_argument, NULL, 'r' },
{(char *)"read-filter", required_argument, NULL, 'R' },
{(char *)"display-filter", required_argument, NULL, 'Y' },
{(char *)"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{"read-file", required_argument, NULL, 'r' },
{"read-filter", required_argument, NULL, 'R' },
{"display-filter", required_argument, NULL, 'Y' },
{"version", no_argument, NULL, 'v'},
LONGOPT_CAPTURE_COMMON
{0, 0, 0, 0 }
};
DIAG_ON(cast-qual)
static const char optstring[] = OPTSTRING;
opterr = 0;

View File

@ -820,7 +820,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
}
#endif
}
d->__nextchar = (char *) "";
d->__nextchar = "";
d->optind++;
d->optopt = 0;
return '?';