mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-19740: Fix GCC 9.2.1 -Wmaybe-uninitialized on AMD64
For CMAKE_BUILD_TYPE=Debug, the default MYSQL_MAINTAINER_MODE=AUTO
implies -Werror along with other flags in cmake/maintainer.cmake,
which would break the debug builds when CMAKE_CXX_FLAGS include -O2.
This fix includes a backport of 6dd3f24090
from MariaDB 10.3.
This commit is contained in:
@@ -428,11 +428,9 @@ static bool convert_const_to_int(THD *thd, Item_field *field_item,
|
|||||||
TABLE *table= field->table;
|
TABLE *table= field->table;
|
||||||
sql_mode_t orig_sql_mode= thd->variables.sql_mode;
|
sql_mode_t orig_sql_mode= thd->variables.sql_mode;
|
||||||
enum_check_fields orig_count_cuted_fields= thd->count_cuted_fields;
|
enum_check_fields orig_count_cuted_fields= thd->count_cuted_fields;
|
||||||
my_bitmap_map *old_maps[2];
|
my_bitmap_map *old_maps[2] = { NULL, NULL };
|
||||||
ulonglong UNINIT_VAR(orig_field_val); /* original field value if valid */
|
ulonglong UNINIT_VAR(orig_field_val); /* original field value if valid */
|
||||||
|
|
||||||
LINT_INIT_STRUCT(old_maps);
|
|
||||||
|
|
||||||
/* table->read_set may not be set if we come here from a CREATE TABLE */
|
/* table->read_set may not be set if we come here from a CREATE TABLE */
|
||||||
if (table && table->read_set)
|
if (table && table->read_set)
|
||||||
dbug_tmp_use_all_columns(table, old_maps,
|
dbug_tmp_use_all_columns(table, old_maps,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2010, 2015, MariaDB
|
Copyright (c) 2010, 2019, MariaDB
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -92,19 +92,15 @@ class Loose_scan_opt
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Loose_scan_opt():
|
Loose_scan_opt():
|
||||||
try_loosescan(FALSE),
|
try_loosescan(false),
|
||||||
bound_sj_equalities(0),
|
bound_sj_equalities(0),
|
||||||
quick_uses_applicable_index(FALSE)
|
quick_uses_applicable_index(FALSE), quick_max_loose_keypart(0),
|
||||||
|
best_loose_scan_key(0), best_loose_scan_records(0.0),
|
||||||
|
best_loose_scan_start_key(NULL),
|
||||||
|
best_max_loose_keypart(0), best_ref_depend_map(0)
|
||||||
{
|
{
|
||||||
/* Protected by quick_uses_applicable_index */
|
|
||||||
LINT_INIT(quick_max_loose_keypart);
|
|
||||||
/* The following are protected by best_loose_scan_cost!= DBL_MAX */
|
|
||||||
LINT_INIT(best_loose_scan_key);
|
|
||||||
LINT_INIT(best_loose_scan_records);
|
|
||||||
LINT_INIT(best_max_loose_keypart);
|
|
||||||
LINT_INIT(best_loose_scan_start_key);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(JOIN *join, JOIN_TAB *s, table_map remaining_tables)
|
void init(JOIN *join, JOIN_TAB *s, table_map remaining_tables)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@@ -1814,16 +1814,13 @@ public:
|
|||||||
bool is_partial_fields_present;
|
bool is_partial_fields_present;
|
||||||
|
|
||||||
Index_prefix_calc(THD *thd, TABLE *table, KEY *key_info)
|
Index_prefix_calc(THD *thd, TABLE *table, KEY *key_info)
|
||||||
: index_table(table), index_info(key_info)
|
: index_table(table), index_info(key_info), prefixes(0), empty(true),
|
||||||
|
calc_state(NULL), is_single_comp_pk(false), is_partial_fields_present(false)
|
||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
Prefix_calc_state *state;
|
Prefix_calc_state *state;
|
||||||
uint key_parts= table->actual_n_key_parts(key_info);
|
uint key_parts= table->actual_n_key_parts(key_info);
|
||||||
empty= TRUE;
|
|
||||||
prefixes= 0;
|
|
||||||
LINT_INIT_STRUCT(calc_state);
|
|
||||||
|
|
||||||
is_partial_fields_present= is_single_comp_pk= FALSE;
|
|
||||||
uint pk= table->s->primary_key;
|
uint pk= table->s->primary_key;
|
||||||
if ((uint) (table->key_info - key_info) == pk &&
|
if ((uint) (table->key_info - key_info) == pk &&
|
||||||
table->key_info[pk].user_defined_key_parts == 1)
|
table->key_info[pk].user_defined_key_parts == 1)
|
||||||
|
@@ -83,13 +83,13 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||||||
#error
|
#error
|
||||||
#endif
|
#endif
|
||||||
DBUG_ENTER("walk_and_match");
|
DBUG_ENTER("walk_and_match");
|
||||||
LINT_INIT_STRUCT(subkeys);
|
|
||||||
|
|
||||||
word->weight=LWS_FOR_QUERY;
|
word->weight=LWS_FOR_QUERY;
|
||||||
|
|
||||||
_ma_ft_make_key(info, &key, aio->keynr, keybuff, word, 0);
|
_ma_ft_make_key(info, &key, aio->keynr, keybuff, word, 0);
|
||||||
key.data_length-= HA_FT_WLEN;
|
key.data_length-= HA_FT_WLEN;
|
||||||
doc_cnt=0;
|
doc_cnt=0;
|
||||||
|
subkeys.i= 0;
|
||||||
|
|
||||||
if (share->lock_key_trees)
|
if (share->lock_key_trees)
|
||||||
mysql_rwlock_rdlock(&share->keyinfo[aio->keynr].root_lock);
|
mysql_rwlock_rdlock(&share->keyinfo[aio->keynr].root_lock);
|
||||||
|
@@ -81,13 +81,13 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
|
|||||||
#error
|
#error
|
||||||
#endif
|
#endif
|
||||||
DBUG_ENTER("walk_and_match");
|
DBUG_ENTER("walk_and_match");
|
||||||
LINT_INIT_STRUCT(subkeys);
|
|
||||||
|
|
||||||
word->weight=LWS_FOR_QUERY;
|
word->weight=LWS_FOR_QUERY;
|
||||||
|
|
||||||
keylen=_ft_make_key(info,aio->keynr,keybuff,word,0);
|
keylen=_ft_make_key(info,aio->keynr,keybuff,word,0);
|
||||||
keylen-=HA_FT_WLEN;
|
keylen-=HA_FT_WLEN;
|
||||||
doc_cnt=0;
|
doc_cnt=0;
|
||||||
|
subkeys.i= 0;
|
||||||
|
|
||||||
if (share->concurrent_insert)
|
if (share->concurrent_insert)
|
||||||
mysql_rwlock_rdlock(&share->key_root_lock[aio->keynr]);
|
mysql_rwlock_rdlock(&share->key_root_lock[aio->keynr]);
|
||||||
|
@@ -47,7 +47,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||||||
uint internal_table= flags & HA_CREATE_INTERNAL_TABLE;
|
uint internal_table= flags & HA_CREATE_INTERNAL_TABLE;
|
||||||
ulong reclength, real_reclength,min_pack_length;
|
ulong reclength, real_reclength,min_pack_length;
|
||||||
char kfilename[FN_REFLEN],klinkname[FN_REFLEN], *klinkname_ptr;
|
char kfilename[FN_REFLEN],klinkname[FN_REFLEN], *klinkname_ptr;
|
||||||
char dfilename[FN_REFLEN],dlinkname[FN_REFLEN], *dlinkname_ptr;
|
char dfilename[FN_REFLEN],dlinkname[FN_REFLEN], *dlinkname_ptr= 0;
|
||||||
ulong pack_reclength;
|
ulong pack_reclength;
|
||||||
ulonglong tot_length,max_rows, tmp;
|
ulonglong tot_length,max_rows, tmp;
|
||||||
enum en_fieldtype type;
|
enum en_fieldtype type;
|
||||||
|
Reference in New Issue
Block a user