Added casts to avoid compiler warnings and fixed a wrong type.

```yaml
Added casts and fixed wrong type.
```

Added casts and fixed wrong type.
---
Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
---
Don't give warning that readonly variable is forced to be readonly
mysql-test-run run now fails if we have [Warning] and [ERROR] as tags in .err file
Fixed wrong reference to the mysql manual
Fixed wrong prototype that caused some tests to fail on 64 bit platforms
---
Disabled compiler warnings mainly for Win 64.
---
Added casts to remove compiler warnings on windows
Give warnings also for safe_mutex errors found by test system
Added some warnings from different machines in pushbuild
---
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  mysql.com:/home/my/mysql-5.1
---
Added escapes for double quotes and parenthesis.
---
Archive db fix plus added non-critical warnings
in ignore list.
---
Fixed previously added patch and added new ignored warning.
parent b0352197
...@@ -1222,7 +1222,8 @@ VAR* var_get(const char *var_name, const char **var_name_end, my_bool raw, ...@@ -1222,7 +1222,8 @@ VAR* var_get(const char *var_name, const char **var_name_end, my_bool raw,
if (length >= MAX_VAR_NAME_LENGTH) if (length >= MAX_VAR_NAME_LENGTH)
die("Too long variable name: %s", save_var_name); die("Too long variable name: %s", save_var_name);
if (!(v = (VAR*) hash_search(&var_hash, save_var_name, length))) if (!(v = (VAR*) hash_search(&var_hash, (const uchar*) save_var_name,
length)))
{ {
char buff[MAX_VAR_NAME_LENGTH+1]; char buff[MAX_VAR_NAME_LENGTH+1];
strmake(buff, save_var_name, length); strmake(buff, save_var_name, length);
...@@ -1253,7 +1254,7 @@ err: ...@@ -1253,7 +1254,7 @@ err:
VAR *var_obtain(const char *name, int len) VAR *var_obtain(const char *name, int len)
{ {
VAR* v; VAR* v;
if ((v = (VAR*)hash_search(&var_hash, name, len))) if ((v = (VAR*)hash_search(&var_hash, (const uchar *) name, len)))
return v; return v;
v = var_init(0, name, len, "", 0); v = var_init(0, name, len, "", 0);
my_hash_insert(&var_hash, (uchar*)v); my_hash_insert(&var_hash, (uchar*)v);
...@@ -4667,7 +4668,7 @@ void free_win_path_patterns() ...@@ -4667,7 +4668,7 @@ void free_win_path_patterns()
for (i=0 ; i < patterns.elements ; i++) for (i=0 ; i < patterns.elements ; i++)
{ {
const char** pattern= dynamic_element(&patterns, i, const char**); const char** pattern= dynamic_element(&patterns, i, const char**);
my_free(*pattern, MYF(0)); my_free((char*) *pattern, MYF(0));
} }
delete_dynamic(&patterns); delete_dynamic(&patterns);
} }
...@@ -7488,7 +7489,8 @@ REPLACE *init_replace(char * *from, char * *to,uint count, ...@@ -7488,7 +7489,8 @@ REPLACE *init_replace(char * *from, char * *to,uint count,
for (i=1 ; i <= found_sets ; i++) for (i=1 ; i <= found_sets ; i++)
{ {
pos=from[found_set[i-1].table_offset]; pos=from[found_set[i-1].table_offset];
rep_str[i].found= !bcmp(pos,"\\^",3) ? 2 : 1; rep_str[i].found= !bcmp((const uchar*) pos,
(const uchar*) "\\^", 3) ? 2 : 1;
rep_str[i].replace_string=to_array[found_set[i-1].table_offset]; rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos); rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+ rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
...@@ -7686,15 +7688,17 @@ int find_found(FOUND_SET *found_set,uint table_offset, int found_offset) ...@@ -7686,15 +7688,17 @@ int find_found(FOUND_SET *found_set,uint table_offset, int found_offset)
uint start_at_word(char * pos) uint start_at_word(char * pos)
{ {
return (((!bcmp(pos,"\\b",2) && pos[2]) || !bcmp(pos,"\\^",2)) ? 1 : 0); return (((!bcmp((const uchar*) pos, (const uchar*) "\\b",2) && pos[2]) ||
!bcmp((const uchar*) pos, (const uchar*) "\\^", 2)) ? 1 : 0);
} }
uint end_of_word(char * pos) uint end_of_word(char * pos)
{ {
char * end=strend(pos); char * end=strend(pos);
return ((end > pos+2 && !bcmp(end-2,"\\b",2)) || return ((end > pos+2 && !bcmp((const uchar*) end-2,
(end >= pos+2 && !bcmp(end-2,"\\$",2))) ? (const uchar*) "\\b", 2)) ||
1 : 0; (end >= pos+2 && !bcmp((const uchar*) end-2,
(const uchar*) "\\$",2))) ? 1 : 0;
} }
/**************************************************************************** /****************************************************************************
...@@ -7721,7 +7725,7 @@ int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name) ...@@ -7721,7 +7725,7 @@ int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name)
if (!(pa->str= (uchar*) my_malloc((uint) (PS_MALLOC-MALLOC_OVERHEAD), if (!(pa->str= (uchar*) my_malloc((uint) (PS_MALLOC-MALLOC_OVERHEAD),
MYF(MY_WME)))) MYF(MY_WME))))
{ {
my_free(pa->typelib.type_names,MYF(0)); my_free((char*) pa->typelib.type_names,MYF(0));
DBUG_RETURN (-1); DBUG_RETURN (-1);
} }
pa->max_count=(PC_MALLOC-MALLOC_OVERHEAD)/(sizeof(uchar*)+ pa->max_count=(PC_MALLOC-MALLOC_OVERHEAD)/(sizeof(uchar*)+
...@@ -7767,9 +7771,9 @@ int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name) ...@@ -7767,9 +7771,9 @@ int insert_pointer_name(reg1 POINTER_ARRAY *pa,char * name)
old_count*sizeof(*pa->flag)); old_count*sizeof(*pa->flag));
} }
pa->flag[pa->typelib.count]=0; /* Reset flag */ pa->flag[pa->typelib.count]=0; /* Reset flag */
pa->typelib.type_names[pa->typelib.count++]= pa->str+pa->length; pa->typelib.type_names[pa->typelib.count++]= (char*) pa->str+pa->length;
pa->typelib.type_names[pa->typelib.count]= NullS; /* Put end-mark */ pa->typelib.type_names[pa->typelib.count]= NullS; /* Put end-mark */
VOID(strmov(pa->str+pa->length,name)); VOID(strmov((char*) pa->str+pa->length,name));
pa->length+=length; pa->length+=length;
DBUG_RETURN(0); DBUG_RETURN(0);
} /* insert_pointer_name */ } /* insert_pointer_name */
...@@ -7782,7 +7786,7 @@ void free_pointer_array(POINTER_ARRAY *pa) ...@@ -7782,7 +7786,7 @@ void free_pointer_array(POINTER_ARRAY *pa)
if (pa->typelib.count) if (pa->typelib.count)
{ {
pa->typelib.count=0; pa->typelib.count=0;
my_free(pa->typelib.type_names,MYF(0)); my_free((char*) pa->typelib.type_names,MYF(0));
pa->typelib.type_names=0; pa->typelib.type_names=0;
my_free(pa->str,MYF(0)); my_free(pa->str,MYF(0));
} }
......
...@@ -265,8 +265,13 @@ sub mtr_report_stats ($) { ...@@ -265,8 +265,13 @@ sub mtr_report_stats ($) {
else else
{ {
# We report different types of problems in order # We report different types of problems in order
foreach my $pattern ( "^Warning:", "^Error:", "^==.* at 0x", foreach my $pattern ( "^Warning:",
"InnoDB: Warning", "missing DBUG_RETURN", "\\[Warning\\]",
"\\[ERROR\\]",
"^Error:", "^==.* at 0x",
"InnoDB: Warning",
"^safe_mutex:",
"missing DBUG_RETURN",
"mysqld: Warning", "mysqld: Warning",
"allocated at line", "allocated at line",
"Attempting backtrace", "Assertion .* failed" ) "Attempting backtrace", "Assertion .* failed" )
...@@ -281,10 +286,69 @@ sub mtr_report_stats ($) { ...@@ -281,10 +286,69 @@ sub mtr_report_stats ($) {
while ( <ERR> ) while ( <ERR> )
{ {
# Skip some non fatal warnings from the log files # Skip some non fatal warnings from the log files
if ( /Warning:\s+Table:.* on (delete|rename)/ or if (
/Warning:\s+Setting lower_case_table_names=2/ or /\"SELECT UNIX_TIMESTAMP\(\)\" failed on master/ or
/Warning:\s+One can only use the --user.*root/ or /Aborted connection/ or
/InnoDB: Warning: we did not need to do crash recovery/) /Client requested master to start replication from impossible position/ or
/Could not find first log file name in binary log/ or
/Enabling keys got errno/ or
/Error reading master configuration/ or
/Error reading packet/ or
/Event Scheduler/ or
/Failed to open log/ or
/Failed to open the existing master info file/ or
/Forcing shutdown of [0-9]* plugins/ or
/Got error [0-9]* when reading table/ or
/Incorrect definition of table/ or
/Incorrect information in file/ or
/InnoDB: Warning: we did not need to do crash recovery/ or
/Invalid \(old\?\) table or database name/ or
/Lock wait timeout exceeded/ or
/Log entry on master is longer than max_allowed_packet/ or
/unknown option '--loose-/ or
/unknown variable 'loose-/ or
/You have forced lower_case_table_names to 0 through a command-line option/ or
/Setting lower_case_table_names=2/ or
/NDB Binlog:/ or
/NDB: failed to setup table/ or
/NDB: only row based binary logging/ or
/Neither --relay-log nor --relay-log-index were used/ or
/Query partially completed/ or
/Slave I.O thread aborted while waiting for relay log/ or
/Slave SQL thread is stopped because UNTIL condition/ or
/Slave SQL thread retried transaction/ or
/Slave \(additional info\)/ or
/Slave: .*Duplicate column name/ or
/Slave: .*master may suffer from/ or
/Slave: According to the master's version/ or
/Slave: Column [0-9]* type mismatch/ or
/Slave: Error .* doesn't exist/ or
/Slave: Error .*Deadlock found/ or
/Slave: Error .*Unknown table/ or
/Slave: Error in Write_rows event: / or
/Slave: Field .* of table .* has no default value/ or
/Slave: Query caused different errors on master and slave/ or
/Slave: Table .* doesn't exist/ or
/Slave: Table width mismatch/ or
/Slave: The incident LOST_EVENTS occured on the master/ or
/Slave: Unknown error.* 1105/ or
/Slave: Can't drop database.* database doesn't exist/ or
/Sort aborted/ or
/Time-out in NDB/ or
/Warning:\s+One can only use the --user.*root/ or
/Warning:\s+Setting lower_case_table_names=2/ or
/Warning:\s+Table:.* on (delete|rename)/ or
/You have an error in your SQL syntax/ or
/deprecated/ or
/description of time zone/ or
/equal MySQL server ids/ or
/error .*connecting to master/ or
/error reading log entry/ or
/lower_case_table_names is set/ or
/skip-name-resolve mode/ or
/slave SQL thread aborted/ or
/Slave: .*Duplicate entry/
)
{ {
next; # Skip these lines next; # Skip these lines
} }
......
...@@ -629,6 +629,11 @@ else ...@@ -629,6 +629,11 @@ else
TEST_MODE=`echo $TEST_MODE | sed 's/^ *//'` TEST_MODE=`echo $TEST_MODE | sed 's/^ *//'`
fi fi
#
# Skip tests that doesn't work with shell version
#
SKIP_TEST="$SKIP_TEST bootstrap"
#++ #++
# mysqld Environment Parameters # mysqld Environment Parameters
#-- #--
...@@ -900,8 +905,8 @@ MYSQL_DUMP="$MYSQL_DUMP --no-defaults --debug-info -uroot --socket=$MASTER_MYSOC ...@@ -900,8 +905,8 @@ MYSQL_DUMP="$MYSQL_DUMP --no-defaults --debug-info -uroot --socket=$MASTER_MYSOC
MYSQL_SLAP="$MYSQL_SLAP -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSLAP_OPT" MYSQL_SLAP="$MYSQL_SLAP -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSLAP_OPT"
MYSQL_DUMP_SLAVE="$MYSQL_DUMP_DIR --no-defaults -uroot --socket=$SLAVE_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT" MYSQL_DUMP_SLAVE="$MYSQL_DUMP_DIR --no-defaults -uroot --socket=$SLAVE_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
MYSQL_SHOW="$MYSQL_SHOW --no-defaults --debug-info -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT" MYSQL_SHOW="$MYSQL_SHOW --no-defaults --debug-info -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT"
MYSQL_BINLOG="$MYSQL_BINLOG --debug-info --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT" MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --debug-info --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_IMPORT="$MYSQL_IMPORT --debug-info -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT" MYSQL_IMPORT="$MYSQL_IMPORT --no-defaults --debug-info -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose" MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose"
MYSQL="$MYSQL --no-defaults --debug-info --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD" MYSQL="$MYSQL --no-defaults --debug-info --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_DUMP_SLAVE MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_DUMP_SLAVE MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT
......
...@@ -22,8 +22,10 @@ hex(inet_aton('127.1.1')) ...@@ -22,8 +22,10 @@ hex(inet_aton('127.1.1'))
select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8''))); select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8''))) length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8'')))
36 utf8 16 36 utf8 16
select cast(uuid_short()-uuid_short() as signed); set @a= uuid_short();
cast(uuid_short()-uuid_short() as signed) set @b= uuid_short();
select cast(@a - @b as signed);
cast(@a - @b as signed)
-1 -1
select length(format('nan', 2)) > 0; select length(format('nan', 2)) > 0;
length(format('nan', 2)) > 0 length(format('nan', 2)) > 0
......
...@@ -15,6 +15,9 @@ im_options : Bug#20294 2006-07-24 stewart Instance manager test ...@@ -15,6 +15,9 @@ im_options : Bug#20294 2006-07-24 stewart Instance manager test
im_daemon_life_cycle : Bug#20294 2007-05-14 alik Instance manager tests fail randomly im_daemon_life_cycle : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
im_cmd_line : Bug#20294 2007-05-14 alik Instance manager tests fail randomly im_cmd_line : Bug#20294 2007-05-14 alik Instance manager tests fail randomly
im_life_cycle : BUG#27851 Instance manager dies on ASSERT in ~Thread_registry() or from not being able to close a mysqld instance. im_life_cycle : BUG#27851 Instance manager dies on ASSERT in ~Thread_registry() or from not being able to close a mysqld instance.
im_instance_conf : BUG#28743 Instance manager generates warnings in test suite
im_utils : BUG#28743 Instance manager generates warnings in test suite
concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences
ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
......
...@@ -16,7 +16,9 @@ select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_ut ...@@ -16,7 +16,9 @@ select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_ut
# As we can assume we are the only user for the mysqld server, the difference # As we can assume we are the only user for the mysqld server, the difference
# between two calls should be -1 # between two calls should be -1
select cast(uuid_short()-uuid_short() as signed); set @a= uuid_short();
set @b= uuid_short();
select cast(@a - @b as signed);
# #
# Test for core dump with nan # Test for core dump with nan
......
...@@ -63,7 +63,7 @@ my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size, ...@@ -63,7 +63,7 @@ my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
array->size_of_element=element_size; array->size_of_element=element_size;
if ((array->buffer= init_buffer)) if ((array->buffer= init_buffer))
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
if (!(array->buffer=(char*) my_malloc_ci(element_size*init_alloc,MYF(MY_WME)))) if (!(array->buffer=(uchar*) my_malloc_ci(element_size*init_alloc,MYF(MY_WME))))
{ {
array->max_element=0; array->max_element=0;
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
...@@ -132,7 +132,7 @@ uchar *alloc_dynamic(DYNAMIC_ARRAY *array) ...@@ -132,7 +132,7 @@ uchar *alloc_dynamic(DYNAMIC_ARRAY *array)
if (array->elements == array->max_element) if (array->elements == array->max_element)
{ {
char *new_ptr; char *new_ptr;
if (array->buffer == (char *)(array + 1)) if (array->buffer == (uchar *)(array + 1))
{ {
/* /*
In this senerio, the buffer is statically preallocated, In this senerio, the buffer is statically preallocated,
...@@ -152,7 +152,7 @@ uchar *alloc_dynamic(DYNAMIC_ARRAY *array) ...@@ -152,7 +152,7 @@ uchar *alloc_dynamic(DYNAMIC_ARRAY *array)
array->size_of_element, array->size_of_element,
MYF(MY_WME | MY_ALLOW_ZERO_PTR)))) MYF(MY_WME | MY_ALLOW_ZERO_PTR))))
return 0; return 0;
array->buffer=new_ptr; array->buffer= (uchar*) new_ptr;
array->max_element+=array->alloc_increment; array->max_element+=array->alloc_increment;
} }
return array->buffer+(array->elements++ * array->size_of_element); return array->buffer+(array->elements++ * array->size_of_element);
...@@ -206,7 +206,7 @@ my_bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx) ...@@ -206,7 +206,7 @@ my_bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx)
char *new_ptr; char *new_ptr;
size=(idx+array->alloc_increment)/array->alloc_increment; size=(idx+array->alloc_increment)/array->alloc_increment;
size*= array->alloc_increment; size*= array->alloc_increment;
if (array->buffer == (char *)(array + 1)) if (array->buffer == (uchar *)(array + 1))
{ {
/* /*
In this senerio, the buffer is statically preallocated, In this senerio, the buffer is statically preallocated,
...@@ -224,7 +224,7 @@ my_bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx) ...@@ -224,7 +224,7 @@ my_bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx)
array->size_of_element, array->size_of_element,
MYF(MY_WME | MY_ALLOW_ZERO_PTR)))) MYF(MY_WME | MY_ALLOW_ZERO_PTR))))
return TRUE; return TRUE;
array->buffer=new_ptr; array->buffer= (uchar*) new_ptr;
array->max_element=size; array->max_element=size;
} }
bzero((uchar*) (array->buffer+array->elements*array->size_of_element), bzero((uchar*) (array->buffer+array->elements*array->size_of_element),
...@@ -273,7 +273,7 @@ void delete_dynamic(DYNAMIC_ARRAY *array) ...@@ -273,7 +273,7 @@ void delete_dynamic(DYNAMIC_ARRAY *array)
/* /*
Just mark as empty if we are using a static buffer Just mark as empty if we are using a static buffer
*/ */
if (array->buffer == (char *)(array + 1)) if (array->buffer == (uchar *)(array + 1))
array->elements= 0; array->elements= 0;
else else
if (array->buffer) if (array->buffer)
...@@ -295,7 +295,7 @@ void delete_dynamic(DYNAMIC_ARRAY *array) ...@@ -295,7 +295,7 @@ void delete_dynamic(DYNAMIC_ARRAY *array)
void delete_dynamic_element(DYNAMIC_ARRAY *array, uint idx) void delete_dynamic_element(DYNAMIC_ARRAY *array, uint idx)
{ {
char *ptr=array->buffer+array->size_of_element*idx; char *ptr= (char*) array->buffer+array->size_of_element*idx;
array->elements--; array->elements--;
memmove(ptr,ptr+array->size_of_element, memmove(ptr,ptr+array->size_of_element,
(array->elements-idx)*array->size_of_element); (array->elements-idx)*array->size_of_element);
...@@ -318,12 +318,12 @@ void freeze_size(DYNAMIC_ARRAY *array) ...@@ -318,12 +318,12 @@ void freeze_size(DYNAMIC_ARRAY *array)
/* /*
Do nothing if we are using a static buffer Do nothing if we are using a static buffer
*/ */
if (array->buffer == (char *)(array + 1)) if (array->buffer == (uchar *)(array + 1))
return; return;
if (array->buffer && array->max_element != elements) if (array->buffer && array->max_element != elements)
{ {
array->buffer=(char*) my_realloc(array->buffer, array->buffer=(uchar*) my_realloc(array->buffer,
elements*array->size_of_element, elements*array->size_of_element,
MYF(MY_WME)); MYF(MY_WME));
array->max_element=elements; array->max_element=elements;
......
...@@ -308,7 +308,8 @@ static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key, ...@@ -308,7 +308,8 @@ static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key,
my_bool my_hash_insert(HASH *info,const uchar *record) my_bool my_hash_insert(HASH *info,const uchar *record)
{ {
int flag; int flag;
uint halfbuff,hash_nr,first_index,idx; size_t idx;
uint halfbuff,hash_nr,first_index;
uchar *ptr_to_rec,*ptr_to_rec2; uchar *ptr_to_rec,*ptr_to_rec2;
HASH_LINK *data,*empty,*gpos,*gpos2,*pos; HASH_LINK *data,*empty,*gpos,*gpos2,*pos;
...@@ -535,7 +536,8 @@ exit: ...@@ -535,7 +536,8 @@ exit:
my_bool hash_update(HASH *hash, uchar *record, uchar *old_key, my_bool hash_update(HASH *hash, uchar *record, uchar *old_key,
size_t old_key_length) size_t old_key_length)
{ {
uint idx,new_index,new_pos_index,blength,records,empty; uint new_index,new_pos_index,blength,records,empty;
size_t idx;
HASH_LINK org_link,*data,*previous,*pos; HASH_LINK org_link,*data,*previous,*pos;
DBUG_ENTER("hash_update"); DBUG_ENTER("hash_update");
...@@ -546,7 +548,7 @@ my_bool hash_update(HASH *hash, uchar *record, uchar *old_key, ...@@ -546,7 +548,7 @@ my_bool hash_update(HASH *hash, uchar *record, uchar *old_key,
if ((found= hash_first(hash, new_key, idx, &state))) if ((found= hash_first(hash, new_key, idx, &state)))
do do
{ {
if (found != record) if (found != (char*) record)
DBUG_RETURN(1); /* Duplicate entry */ DBUG_RETURN(1); /* Duplicate entry */
} }
while ((found= hash_next(hash, new_key, idx, &state))); while ((found= hash_next(hash, new_key, idx, &state)));
......
...@@ -68,7 +68,7 @@ uchar *my_compress_alloc(const uchar *packet, size_t *len, size_t *complen) ...@@ -68,7 +68,7 @@ uchar *my_compress_alloc(const uchar *packet, size_t *len, size_t *complen)
return 0; /* Not enough memory */ return 0; /* Not enough memory */
tmp_complen= *complen; tmp_complen= *complen;
res= compress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, *len); res= compress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, (uLong) *len);
*complen= tmp_complen; *complen= tmp_complen;
if (res != Z_OK) if (res != Z_OK)
...@@ -120,7 +120,7 @@ my_bool my_uncompress(uchar *packet, size_t len, size_t *complen) ...@@ -120,7 +120,7 @@ my_bool my_uncompress(uchar *packet, size_t len, size_t *complen)
tmp_complen= *complen; tmp_complen= *complen;
error= uncompress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, error= uncompress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet,
len); (uLong) len);
*complen= tmp_complen; *complen= tmp_complen;
if (error != Z_OK) if (error != Z_OK)
{ /* Probably wrong packet */ { /* Probably wrong packet */
......
...@@ -125,6 +125,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen) ...@@ -125,6 +125,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
{ {
ULONG state; ULONG state;
char *result; char *result;
DWORD plen_res;
CONSOLE_SCREEN_BUFFER_INFO csbi; CONSOLE_SCREEN_BUFFER_INFO csbi;
pthread_auto_mutex_decl(my_conio_cs); pthread_auto_mutex_decl(my_conio_cs);
...@@ -171,7 +172,8 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen) ...@@ -171,7 +172,8 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
do do
{ {
clen= min(clen, (size_t) csbi.dwSize.X*csbi.dwSize.Y); clen= min(clen, (size_t) csbi.dwSize.X*csbi.dwSize.Y);
if (!ReadConsole((HANDLE)my_coninpfh, (LPVOID)buffer, clen - 1, plen, NULL)) if (!ReadConsole((HANDLE)my_coninpfh, (LPVOID)buffer, clen - 1, &plen_res,
NULL))
{ {
result= NULL; result= NULL;
clen>>= 1; clen>>= 1;
...@@ -183,7 +185,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen) ...@@ -183,7 +185,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
} }
} }
while (GetLastError() == ERROR_NOT_ENOUGH_MEMORY); while (GetLastError() == ERROR_NOT_ENOUGH_MEMORY);
*plen= plen_res;
if (result != NULL) if (result != NULL)
{ {
......
...@@ -182,6 +182,7 @@ size_t my_pwrite(int Filedes, const uchar *Buffer, size_t Count, ...@@ -182,6 +182,7 @@ size_t my_pwrite(int Filedes, const uchar *Buffer, size_t Count,
else else
break; /* Return bytes written */ break; /* Return bytes written */
} }
DBUG_EXECUTE_IF("check", my_seek(Filedes, -1, SEEK_SET, MYF(0)););
if (MyFlags & (MY_NABP | MY_FNABP)) if (MyFlags & (MY_NABP | MY_FNABP))
DBUG_RETURN(0); /* Want only errors */ DBUG_RETURN(0); /* Want only errors */
DBUG_RETURN(writenbytes+written); /* purecov: inspected */ DBUG_RETURN(writenbytes+written); /* purecov: inspected */
......
...@@ -50,7 +50,7 @@ size_t my_quick_write(File Filedes,const uchar *Buffer,size_t Count) ...@@ -50,7 +50,7 @@ size_t my_quick_write(File Filedes,const uchar *Buffer,size_t Count)
#ifndef DBUG_OFF #ifndef DBUG_OFF
writtenbytes = writtenbytes =
#endif #endif
write(Filedes,Buffer,Count)) != Count) (size_t) write(Filedes,Buffer,Count)) != Count)
{ {
#ifndef DBUG_OFF #ifndef DBUG_OFF
if ((writtenbytes == 0 || writtenbytes == (size_t) -1) && errno == EINTR) if ((writtenbytes == 0 || writtenbytes == (size_t) -1) && errno == EINTR)
......
...@@ -1893,16 +1893,16 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb, ...@@ -1893,16 +1893,16 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb,
pthread_mutex_lock(&LOCK_open); pthread_mutex_lock(&LOCK_open);
if (ndbcluster_check_if_local_table(schema->db, schema->name)) if (ndbcluster_check_if_local_table(schema->db, schema->name))
{ {
DBUG_PRINT("info", ("NDB binlog: Skipping locally defined table '%s.%s'", DBUG_PRINT("info", ("NDB Binlog: Skipping locally defined table '%s.%s'",
schema->db, schema->name)); schema->db, schema->name));
sql_print_error("NDB binlog: Skipping locally defined table '%s.%s' from " sql_print_error("NDB Binlog: Skipping locally defined table '%s.%s' from "
"binlog schema event '%s' from node %d. ", "binlog schema event '%s' from node %d. ",
schema->db, schema->name, schema->query, schema->db, schema->name, schema->query,
schema->node_id); schema->node_id);
} }
else if (ndb_create_table_from_engine(thd, schema->db, schema->name)) else if (ndb_create_table_from_engine(thd, schema->db, schema->name))
{ {
sql_print_error("NDB binlog: Could not discover table '%s.%s' from " sql_print_error("NDB Binlog: Could not discover table '%s.%s' from "
"binlog schema event '%s' from node %d. " "binlog schema event '%s' from node %d. "
"my_errno: %d", "my_errno: %d",
schema->db, schema->name, schema->query, schema->db, schema->name, schema->query,
...@@ -1910,7 +1910,7 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb, ...@@ -1910,7 +1910,7 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb,
List_iterator_fast<MYSQL_ERROR> it(thd->warn_list); List_iterator_fast<MYSQL_ERROR> it(thd->warn_list);
MYSQL_ERROR *err; MYSQL_ERROR *err;
while ((err= it++)) while ((err= it++))
sql_print_warning("NDB binlog: (%d)%s", err->code, err->msg); sql_print_warning("NDB Binlog: (%d)%s", err->code, err->msg);
} }
pthread_mutex_unlock(&LOCK_open); pthread_mutex_unlock(&LOCK_open);
log_query= 1; log_query= 1;
...@@ -1931,7 +1931,7 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb, ...@@ -1931,7 +1931,7 @@ ndb_binlog_thread_handle_schema_event(THD *thd, Ndb *ndb,
else else
{ {
/* Database contained local tables, leave it */ /* Database contained local tables, leave it */
sql_print_error("NDB binlog: Skipping drop database '%s' since it contained local tables " sql_print_error("NDB Binlog: Skipping drop database '%s' since it contained local tables "
"binlog schema event '%s' from node %d. ", "binlog schema event '%s' from node %d. ",
schema->db, schema->query, schema->db, schema->query,
schema->node_id); schema->node_id);
...@@ -2179,23 +2179,23 @@ ndb_binlog_thread_handle_schema_event_post_epoch(THD *thd, ...@@ -2179,23 +2179,23 @@ ndb_binlog_thread_handle_schema_event_post_epoch(THD *thd,
pthread_mutex_lock(&LOCK_open); pthread_mutex_lock(&LOCK_open);
if (ndbcluster_check_if_local_table(schema->db, schema->name)) if (ndbcluster_check_if_local_table(schema->db, schema->name))
{ {
DBUG_PRINT("info", ("NDB binlog: Skipping locally defined table '%s.%s'", DBUG_PRINT("info", ("NDB Binlog: Skipping locally defined table '%s.%s'",
schema->db, schema->name)); schema->db, schema->name));
sql_print_error("NDB binlog: Skipping locally defined table '%s.%s' from " sql_print_error("NDB Binlog: Skipping locally defined table '%s.%s' from "
"binlog schema event '%s' from node %d. ", "binlog schema event '%s' from node %d. ",
schema->db, schema->name, schema->query, schema->db, schema->name, schema->query,
schema->node_id); schema->node_id);
} }
else if (ndb_create_table_from_engine(thd, schema->db, schema->name)) else if (ndb_create_table_from_engine(thd, schema->db, schema->name))
{ {
sql_print_error("NDB binlog: Could not discover table '%s.%s' from " sql_print_error("NDB Binlog: Could not discover table '%s.%s' from "
"binlog schema event '%s' from node %d. my_errno: %d", "binlog schema event '%s' from node %d. my_errno: %d",
schema->db, schema->name, schema->query, schema->db, schema->name, schema->query,
schema->node_id, my_errno); schema->node_id, my_errno);
List_iterator_fast<MYSQL_ERROR> it(thd->warn_list); List_iterator_fast<MYSQL_ERROR> it(thd->warn_list);
MYSQL_ERROR *err; MYSQL_ERROR *err;
while ((err= it++)) while ((err= it++))
sql_print_warning("NDB binlog: (%d)%s", err->code, err->msg); sql_print_warning("NDB Binlog: (%d)%s", err->code, err->msg);
} }
pthread_mutex_unlock(&LOCK_open); pthread_mutex_unlock(&LOCK_open);
} }
...@@ -4113,7 +4113,7 @@ restart: ...@@ -4113,7 +4113,7 @@ restart:
injector::transaction::binlog_pos start= trans.start_pos(); injector::transaction::binlog_pos start= trans.start_pos();
if (int r= trans.commit()) if (int r= trans.commit())
{ {
sql_print_error("NDB binlog: " sql_print_error("NDB Binlog: "
"Error during COMMIT of GCI. Error: %d", "Error during COMMIT of GCI. Error: %d",
r); r);
/* TODO: Further handling? */ /* TODO: Further handling? */
......
...@@ -1965,7 +1965,7 @@ bool ha_partition::create_handler_file(const char *name) ...@@ -1965,7 +1965,7 @@ bool ha_partition::create_handler_file(const char *name)
MYF(MY_WME))) >= 0) MYF(MY_WME))) >= 0)
{ {
result= my_write(file, (uchar *) file_buffer, tot_len_byte, result= my_write(file, (uchar *) file_buffer, tot_len_byte,
MYF(MY_WME | MY_NABP)); MYF(MY_WME | MY_NABP)) != 0;
VOID(my_close(file, MYF(0))); VOID(my_close(file, MYF(0)));
} }
else else
......
...@@ -4855,7 +4855,7 @@ void TC_LOG_MMAP::close() ...@@ -4855,7 +4855,7 @@ void TC_LOG_MMAP::close()
case 3: case 3:
my_free((uchar*)pages, MYF(0)); my_free((uchar*)pages, MYF(0));
case 2: case 2:
my_munmap((uchar*)data, (size_t)file_length); my_munmap((char*)data, (size_t)file_length);
case 1: case 1:
my_close(fd, MYF(0)); my_close(fd, MYF(0));
} }
......
...@@ -601,9 +601,9 @@ void slave_print_msg(enum loglevel level, RELAY_LOG_INFO const *rli, ...@@ -601,9 +601,9 @@ void slave_print_msg(enum loglevel level, RELAY_LOG_INFO const *rli,
my_vsnprintf(pbuff, pbuffsize, msg, args); my_vsnprintf(pbuff, pbuffsize, msg, args);
/* If the msg string ends with '.', do not add a ',' it would be ugly */ /* If the msg string ends with '.', do not add a ',' it would be ugly */
if (pbuff[0] && (*(strend(pbuff)-1) == '.')) if (pbuff[0] && (*(strend(pbuff)-1) == '.'))
(*report_function)("Slave: %s Error_code: %d", pbuff, err_code); (*report_function)("Slave: %s Error_code: %d", pbuff, err_code);
else else
(*report_function)("Slave: %s, Error_code: %d", pbuff, err_code); (*report_function)("Slave: %s. Error_code: %d", pbuff, err_code);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
......
...@@ -927,7 +927,7 @@ void THD::add_changed_table(TABLE *table) ...@@ -927,7 +927,7 @@ void THD::add_changed_table(TABLE *table)
DBUG_ASSERT((options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) && DBUG_ASSERT((options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) &&
table->file->has_transactions()); table->file->has_transactions());
add_changed_table(table->s->table_cache_key.str, add_changed_table(table->s->table_cache_key.str,
table->s->table_cache_key.length); (long) table->s->table_cache_key.length);
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
......
...@@ -48,7 +48,7 @@ mapped_files::mapped_files(const char * filename,uchar *magic,uint magic_length) ...@@ -48,7 +48,7 @@ mapped_files::mapped_files(const char * filename,uchar *magic,uint magic_length)
if (map && memcmp(map,magic,magic_length)) if (map && memcmp(map,magic,magic_length))
{ {
my_error(ER_WRONG_MAGIC, MYF(0), name); my_error(ER_WRONG_MAGIC, MYF(0), name);
VOID(my_munmap(map,size)); VOID(my_munmap((char*) map,size));
map=0; map=0;
} }
if (!map) if (!map)
...@@ -66,7 +66,7 @@ mapped_files::~mapped_files() ...@@ -66,7 +66,7 @@ mapped_files::~mapped_files()
#ifdef HAVE_MMAP #ifdef HAVE_MMAP
if (file >= 0) if (file >= 0)
{ {
VOID(my_munmap(map,size)); VOID(my_munmap((char*) map,size));
VOID(my_close(file,MYF(0))); VOID(my_close(file,MYF(0)));
file= -1; map=0; file= -1; map=0;
} }
......
...@@ -1056,7 +1056,7 @@ static uchar *get_hash_key(const uchar *buff, size_t *length, ...@@ -1056,7 +1056,7 @@ static uchar *get_hash_key(const uchar *buff, size_t *length,
} }
static uchar *get_bookmark_hash_key(const uchar *buff, uint *length, static uchar *get_bookmark_hash_key(const uchar *buff, size_t *length,
my_bool not_used __attribute__((unused))) my_bool not_used __attribute__((unused)))
{ {
struct st_bookmark *var= (st_bookmark *)buff; struct st_bookmark *var= (st_bookmark *)buff;
...@@ -2879,9 +2879,9 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp, ...@@ -2879,9 +2879,9 @@ static int construct_options(MEM_ROOT *mem_root, struct st_plugin_int *tmp,
if (!opt->update) if (!opt->update)
{ {
opt->update= update_func_str; opt->update= update_func_str;
if (!(opt->flags & PLUGIN_VAR_MEMALLOC)) if (!(opt->flags & PLUGIN_VAR_MEMALLOC | PLUGIN_VAR_READONLY))
{ {
opt->flags |= PLUGIN_VAR_READONLY; opt->flags|= PLUGIN_VAR_READONLY;
sql_print_warning("Server variable %s of plugin %s was forced " sql_print_warning("Server variable %s of plugin %s was forced "
"to be read-only: string variable without " "to be read-only: string variable without "
"update_func and PLUGIN_VAR_MEMALLOC flag", "update_func and PLUGIN_VAR_MEMALLOC flag",
......
...@@ -206,9 +206,11 @@ terribly wrong...\n"); ...@@ -206,9 +206,11 @@ terribly wrong...\n");
fprintf(stderr, "Stack trace seems successful - bottom reached\n"); fprintf(stderr, "Stack trace seems successful - bottom reached\n");
end: end:
fprintf(stderr, "Please read http://dev.mysql.com/doc/mysql/en/using-stack-trace.html and follow instructions on how to resolve the stack trace. Resolved\n\ fprintf(stderr,
stack trace is much more helpful in diagnosing the problem, so please do \n\ "Please read http://dev.mysql.com/doc/refman/5.1/en/resolve-stack-dump.html\n"
resolve it\n"); "and follow instructions on how to resolve the stack trace.\n"
"Resolved stack trace is much more helpful in diagnosing the\n"
"problem, so please do resolve it\n");
} }
#endif /* TARGET_OS_LINUX */ #endif /* TARGET_OS_LINUX */
#endif /* HAVE_STACKTRACE */ #endif /* HAVE_STACKTRACE */
......
...@@ -557,6 +557,7 @@ int do_flush (azio_stream *s, int flush) ...@@ -557,6 +557,7 @@ int do_flush (azio_stream *s, int flush)
{ {
uInt len; uInt len;
int done = 0; int done = 0;
my_off_t afterwrite_pos;
if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
...@@ -597,7 +598,10 @@ int do_flush (azio_stream *s, int flush) ...@@ -597,7 +598,10 @@ int do_flush (azio_stream *s, int flush)
s->dirty= AZ_STATE_CLEAN; /* Mark it clean, we should be good now */ s->dirty= AZ_STATE_CLEAN; /* Mark it clean, we should be good now */
else else
s->dirty= AZ_STATE_SAVED; /* Mark it clean, we should be good now */ s->dirty= AZ_STATE_SAVED; /* Mark it clean, we should be good now */
afterwrite_pos= my_tell(s->file, MYF(0));
write_header(s); write_header(s);
my_seek(s->file, afterwrite_pos, SEEK_SET, MYF(0));
return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; return s->z_err == Z_STREAM_END ? Z_OK : s->z_err;
} }
......
...@@ -287,8 +287,8 @@ static void blackhole_free_key(st_blackhole_share *share) ...@@ -287,8 +287,8 @@ static void blackhole_free_key(st_blackhole_share *share)
my_free((uchar*) share, MYF(0)); my_free((uchar*) share, MYF(0));
} }
static uchar* blackhole_get_key(st_blackhole_share *share, uint *length, static uchar* blackhole_get_key(st_blackhole_share *share, size_t *length,
my_bool not_used __attribute__((unused))) my_bool not_used __attribute__((unused)))
{ {
*length= share->table_name_length; *length= share->table_name_length;
return (uchar*) share->table_name; return (uchar*) share->table_name;
......
...@@ -114,7 +114,7 @@ pthread_mutex_t example_mutex; ...@@ -114,7 +114,7 @@ pthread_mutex_t example_mutex;
Function we use in the creation of our hash to get key. Function we use in the creation of our hash to get key.
*/ */
static uchar* example_get_key(EXAMPLE_SHARE *share,uint *length, static uchar* example_get_key(EXAMPLE_SHARE *share, size_t *length,
my_bool not_used __attribute__((unused))) my_bool not_used __attribute__((unused)))
{ {
*length=share->table_name_length; *length=share->table_name_length;
......
...@@ -1586,8 +1586,8 @@ my_bool my_like_range_ucs2(CHARSET_INFO *cs, ...@@ -1586,8 +1586,8 @@ my_bool my_like_range_ucs2(CHARSET_INFO *cs,
ulong my_scan_ucs2(CHARSET_INFO *cs __attribute__((unused)), size_t my_scan_ucs2(CHARSET_INFO *cs __attribute__((unused)),
const char *str, const char *end, int sequence_type) const char *str, const char *end, int sequence_type)
{ {
const char *str0= str; const char *str0= str;
end--; /* for easier loop condition, because of two bytes per character */ end--; /* for easier loop condition, because of two bytes per character */
...@@ -1600,7 +1600,7 @@ ulong my_scan_ucs2(CHARSET_INFO *cs __attribute__((unused)), ...@@ -1600,7 +1600,7 @@ ulong my_scan_ucs2(CHARSET_INFO *cs __attribute__((unused)),
if (str[0] != '\0' || str[1] != ' ') if (str[0] != '\0' || str[1] != ' ')
break; break;
} }
return (ulong) (str - str0); return (size_t) (str - str0);
default: default:
return 0; return 0;
} }
......
...@@ -51,6 +51,11 @@ db_vrfy.c : .*comparison is always false due to limited range of data type.* ...@@ -51,6 +51,11 @@ db_vrfy.c : .*comparison is always false due to limited range of data type.*
.* : conversion from '.*size_t' to 'uint32'.* .* : conversion from '.*size_t' to 'uint32'.*
.* : conversion from '.*size_t' to 'off_t'.* .* : conversion from '.*size_t' to 'off_t'.*
.* : conversion from '.*size_t' to 'size_s'.* .* : conversion from '.*size_t' to 'size_s'.*
.* : conversion from '.*size_t' to 'DWORD'.*
.* : conversion from '.*size_t' to 'uLongf'.*
.* : conversion from '.*size_t' to 'UINT'.*
.* : conversion from '.*size_t' to 'uInt'.*
.* : conversion from '.*size_t' to 'uint16'.*
# #
# The following should be fixed by the ndb team # The following should be fixed by the ndb team
...@@ -64,7 +69,9 @@ db_vrfy.c : .*comparison is always false due to limited range of data type.* ...@@ -64,7 +69,9 @@ db_vrfy.c : .*comparison is always false due to limited range of data type.*
# #
listener.cc : .*conversion from 'SOCKET' to 'int'.* listener.cc : .*conversion from 'SOCKET' to 'int'.*
net_serv.cc : .*conversion from 'SOCKET' to 'int'.* net_serv.cc : .*conversion from 'SOCKET' to 'int'.*
mi_packrec.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 567
# allow a little moving space for the warning below
mi_packrec.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 560-600
# #
# Wrong compiler warnings # Wrong compiler warnings
......
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