Commit 38b6d49e authored by Staale Smedseng's avatar Staale Smedseng

Bug #43414 Parenthesis (and other) warnings compiling MySQL

with gcc 4.3.2
      
This is the fifth patch cleaning up more GCC warnings about
variables used before initialized using the new macro
UNINIT_VAR().
parent 7b07ef35
...@@ -196,13 +196,10 @@ int hp_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, ...@@ -196,13 +196,10 @@ int hp_write_key(HP_INFO *info, HP_KEYDEF *keyinfo,
HP_SHARE *share = info->s; HP_SHARE *share = info->s;
int flag; int flag;
ulong halfbuff,hashnr,first_index; ulong halfbuff,hashnr,first_index;
byte *ptr_to_rec,*ptr_to_rec2; byte *UNINIT_VAR(ptr_to_rec),*UNINIT_VAR(ptr_to_rec2);
HASH_INFO *empty,*gpos,*gpos2,*pos; HASH_INFO *empty,*UNINIT_VAR(gpos),*UNINIT_VAR(gpos2),*pos;
DBUG_ENTER("hp_write_key"); DBUG_ENTER("hp_write_key");
LINT_INIT(gpos); LINT_INIT(gpos2);
LINT_INIT(ptr_to_rec); LINT_INIT(ptr_to_rec2);
flag=0; flag=0;
if (!(empty= hp_find_free_hash(share,&keyinfo->block,share->records))) if (!(empty= hp_find_free_hash(share,&keyinfo->block,share->records)))
DBUG_RETURN(-1); /* No more memory */ DBUG_RETURN(-1); /* No more memory */
......
...@@ -458,12 +458,6 @@ int __void__; ...@@ -458,12 +458,6 @@ int __void__;
#define LINT_INIT(var) #define LINT_INIT(var)
#endif #endif
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_purify)
#define PURIFY_OR_LINT_INIT(var) var=0
#else
#define PURIFY_OR_LINT_INIT(var)
#endif
/* /*
Suppress uninitialized variable warning without generating code. Suppress uninitialized variable warning without generating code.
......
...@@ -295,7 +295,8 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page, ...@@ -295,7 +295,8 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page,
uchar *end, *kseg, *vseg; uchar *end, *kseg, *vseg;
uchar *sort_order=keyinfo->seg->charset->sort_order; uchar *sort_order=keyinfo->seg->charset->sort_order;
uchar tt_buff[MI_MAX_KEY_BUFF+2], *t_buff=tt_buff+2; uchar tt_buff[MI_MAX_KEY_BUFF+2], *t_buff=tt_buff+2;
uchar *saved_from, *saved_to, *saved_vseg; uchar *UNINIT_VAR(saved_from), *UNINIT_VAR(saved_to);
uchar *UNINIT_VAR(saved_vseg);
uint saved_length=0, saved_prefix_len=0; uint saved_length=0, saved_prefix_len=0;
uint length_pack; uint length_pack;
DBUG_ENTER("_mi_prefix_search"); DBUG_ENTER("_mi_prefix_search");
...@@ -303,9 +304,6 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page, ...@@ -303,9 +304,6 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page,
LINT_INIT(length); LINT_INIT(length);
LINT_INIT(prefix_len); LINT_INIT(prefix_len);
LINT_INIT(seg_len_pack); LINT_INIT(seg_len_pack);
LINT_INIT(saved_from);
LINT_INIT(saved_to);
LINT_INIT(saved_vseg);
t_buff[0]=0; /* Avoid bugs */ t_buff[0]=0; /* Avoid bugs */
end= page+mi_getint(page); end= page+mi_getint(page);
......
...@@ -700,8 +700,8 @@ static uchar *_mi_find_last_pos(MI_KEYDEF *keyinfo, uchar *page, ...@@ -700,8 +700,8 @@ static uchar *_mi_find_last_pos(MI_KEYDEF *keyinfo, uchar *page,
uchar *key, uint *return_key_length, uchar *key, uint *return_key_length,
uchar **after_key) uchar **after_key)
{ {
uint keys,length,last_length,key_ref_length; uint keys,length,UNINIT_VAR(last_length),key_ref_length;
uchar *end,*lastpos,*prevpos; uchar *end,*lastpos,*UNINIT_VAR(prevpos);
uchar key_buff[MI_MAX_KEY_BUFF]; uchar key_buff[MI_MAX_KEY_BUFF];
DBUG_ENTER("_mi_find_last_pos"); DBUG_ENTER("_mi_find_last_pos");
...@@ -720,8 +720,6 @@ static uchar *_mi_find_last_pos(MI_KEYDEF *keyinfo, uchar *page, ...@@ -720,8 +720,6 @@ static uchar *_mi_find_last_pos(MI_KEYDEF *keyinfo, uchar *page,
DBUG_RETURN(end); DBUG_RETURN(end);
} }
LINT_INIT(prevpos);
LINT_INIT(last_length);
end=page+length-key_ref_length; end=page+length-key_ref_length;
*key='\0'; *key='\0';
length=0; length=0;
......
...@@ -332,11 +332,8 @@ my_bool my_hash_insert(HASH *info,const byte *record) ...@@ -332,11 +332,8 @@ my_bool my_hash_insert(HASH *info,const byte *record)
{ {
int flag; int flag;
uint halfbuff,hash_nr,first_index,idx; uint halfbuff,hash_nr,first_index,idx;
byte *ptr_to_rec,*ptr_to_rec2; byte *UNINIT_VAR(ptr_to_rec),*UNINIT_VAR(ptr_to_rec2);
HASH_LINK *data,*empty,*gpos,*gpos2,*pos; HASH_LINK *data,*empty,*UNINIT_VAR(gpos),*UNINIT_VAR(gpos2),*pos;
LINT_INIT(gpos); LINT_INIT(gpos2);
LINT_INIT(ptr_to_rec); LINT_INIT(ptr_to_rec2);
flag=0; flag=0;
if (!(empty=(HASH_LINK*) alloc_dynamic(&info->array))) if (!(empty=(HASH_LINK*) alloc_dynamic(&info->array)))
......
...@@ -165,7 +165,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time, ...@@ -165,7 +165,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
uint add_hours= 0, start_loop; uint add_hours= 0, start_loop;
ulong not_zero_date, allow_space; ulong not_zero_date, allow_space;
my_bool is_internal_format; my_bool is_internal_format;
const char *pos, *last_field_pos; const char *pos, *UNINIT_VAR(last_field_pos);
const char *end=str+length; const char *end=str+length;
const uchar *format_position; const uchar *format_position;
my_bool found_delimitier= 0, found_space= 0; my_bool found_delimitier= 0, found_space= 0;
...@@ -174,7 +174,6 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time, ...@@ -174,7 +174,6 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
DBUG_PRINT("ENTER",("str: %.*s",length,str)); DBUG_PRINT("ENTER",("str: %.*s",length,str));
LINT_INIT(field_length); LINT_INIT(field_length);
LINT_INIT(last_field_pos);
*was_cut= 0; *was_cut= 0;
......
...@@ -428,8 +428,7 @@ bool Item_func::eq(const Item *item, bool binary_cmp) const ...@@ -428,8 +428,7 @@ bool Item_func::eq(const Item *item, bool binary_cmp) const
Field *Item_func::tmp_table_field(TABLE *t_arg) Field *Item_func::tmp_table_field(TABLE *t_arg)
{ {
Field *res; Field *res= NULL;
LINT_INIT(res);
switch (result_type()) { switch (result_type()) {
case INT_RESULT: case INT_RESULT:
...@@ -4202,9 +4201,8 @@ void Item_func_set_user_var::save_item_result(Item *item) ...@@ -4202,9 +4201,8 @@ void Item_func_set_user_var::save_item_result(Item *item)
bool bool
Item_func_set_user_var::update() Item_func_set_user_var::update()
{ {
bool res; bool res= NULL;
DBUG_ENTER("Item_func_set_user_var::update"); DBUG_ENTER("Item_func_set_user_var::update");
LINT_INIT(res);
switch (cached_result_type) { switch (cached_result_type) {
case REAL_RESULT: case REAL_RESULT:
......
...@@ -271,9 +271,9 @@ static bool extract_date_time(DATE_TIME_FORMAT *format, ...@@ -271,9 +271,9 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
int strict_week_number_year= -1; int strict_week_number_year= -1;
int frac_part; int frac_part;
bool usa_time= 0; bool usa_time= 0;
bool sunday_first_n_first_week_non_iso; bool UNINIT_VAR(sunday_first_n_first_week_non_iso);
bool strict_week_number; bool UNINIT_VAR(strict_week_number);
bool strict_week_number_year_type; bool UNINIT_VAR(strict_week_number_year_type);
const char *val_begin= val; const char *val_begin= val;
const char *val_end= val + length; const char *val_end= val + length;
const char *ptr= format->format.str; const char *ptr= format->format.str;
...@@ -281,11 +281,6 @@ static bool extract_date_time(DATE_TIME_FORMAT *format, ...@@ -281,11 +281,6 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
CHARSET_INFO *cs= &my_charset_bin; CHARSET_INFO *cs= &my_charset_bin;
DBUG_ENTER("extract_date_time"); DBUG_ENTER("extract_date_time");
LINT_INIT(strict_week_number);
/* Remove valgrind varnings when using gcc 3.3 and -O1 */
PURIFY_OR_LINT_INIT(strict_week_number_year_type);
PURIFY_OR_LINT_INIT(sunday_first_n_first_week_non_iso);
if (!sub_pattern_end) if (!sub_pattern_end)
bzero((char*) l_time, sizeof(*l_time)); bzero((char*) l_time, sizeof(*l_time));
......
...@@ -385,16 +385,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables, ...@@ -385,16 +385,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables,
String buffer(buff, sizeof(buff), system_charset_info); String buffer(buff, sizeof(buff), system_charset_info);
int error, keyno= -1; int error, keyno= -1;
uint num_rows; uint num_rows;
byte *key; byte *UNINIT_VAR(key);
uint key_len; uint UNINIT_VAR(key_len);
bool need_reopen; bool need_reopen;
DBUG_ENTER("mysql_ha_read"); DBUG_ENTER("mysql_ha_read");
DBUG_PRINT("enter",("'%s'.'%s' as '%s'", DBUG_PRINT("enter",("'%s'.'%s' as '%s'",
tables->db, tables->table_name, tables->alias)); tables->db, tables->table_name, tables->alias));
LINT_INIT(key);
LINT_INIT(key_len);
thd->lex->select_lex.context.resolve_in_table_list_only(tables); thd->lex->select_lex.context.resolve_in_table_list_only(tables);
list.push_front(new Item_field(&thd->lex->select_lex.context, list.push_front(new Item_field(&thd->lex->select_lex.context,
NULL, NULL, "*")); NULL, NULL, "*"));
......
...@@ -530,7 +530,7 @@ static inline uint int_token(const char *str,uint length) ...@@ -530,7 +530,7 @@ static inline uint int_token(const char *str,uint length)
int MYSQLlex(void *arg, void *yythd) int MYSQLlex(void *arg, void *yythd)
{ {
reg1 uchar c; reg1 uchar UNINIT_VAR(c);
bool comment_closed; bool comment_closed;
int tokval, result_state; int tokval, result_state;
uint length; uint length;
...@@ -550,7 +550,6 @@ int MYSQLlex(void *arg, void *yythd) ...@@ -550,7 +550,6 @@ int MYSQLlex(void *arg, void *yythd)
lip->tok_start=lip->tok_end=lip->ptr; lip->tok_start=lip->tok_end=lip->ptr;
state=lip->next_state; state=lip->next_state;
lip->next_state=MY_LEX_OPERATOR_OR_IDENT; lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
LINT_INIT(c);
for (;;) for (;;)
{ {
switch (state) { switch (state) {
......
...@@ -10480,9 +10480,8 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure) ...@@ -10480,9 +10480,8 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
{ {
int rc= 0; int rc= 0;
enum_nested_loop_state error= NESTED_LOOP_OK; enum_nested_loop_state error= NESTED_LOOP_OK;
JOIN_TAB *join_tab; JOIN_TAB *UNINIT_VAR(join_tab);
DBUG_ENTER("do_select"); DBUG_ENTER("do_select");
LINT_INIT(join_tab);
join->procedure=procedure; join->procedure=procedure;
join->tmp_table= table; /* Save for easy recursion */ join->tmp_table= table; /* Save for easy recursion */
......
...@@ -139,10 +139,10 @@ typedef long long longlong; ...@@ -139,10 +139,10 @@ typedef long long longlong;
#include <mysql.h> #include <mysql.h>
#include <ctype.h> #include <ctype.h>
static pthread_mutex_t LOCK_hostname;
#ifdef HAVE_DLOPEN #ifdef HAVE_DLOPEN
static pthread_mutex_t LOCK_hostname;
/* These must be right or mysqld will not find the symbol! */ /* These must be right or mysqld will not find the symbol! */
my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message); my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment