Commit 3db31fd1 by Jakub Jelinek Committed by Jakub Jelinek

toplev.c (init_local_tick): Avoid signed integer multiplication overflow.

	* toplev.c (init_local_tick): Avoid signed integer multiplication
	overflow.
	* genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
	shift by first operand's bitsize.

From-SVN: r208765
parent 9e769222
2014-03-22 Jakub Jelinek <jakub@redhat.com>
* toplev.c (init_local_tick): Avoid signed integer multiplication
overflow.
* genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
shift by first operand's bitsize.
2014-03-21 Jakub Jelinek <jakub@redhat.com> 2014-03-21 Jakub Jelinek <jakub@redhat.com>
PR target/60610 PR target/60610
......
...@@ -3494,7 +3494,7 @@ reserv_sets_hash_value (reserv_sets_t reservs) ...@@ -3494,7 +3494,7 @@ reserv_sets_hash_value (reserv_sets_t reservs)
{ {
reservs_num--; reservs_num--;
hash_value += ((*reserv_ptr >> i) hash_value += ((*reserv_ptr >> i)
| (*reserv_ptr << ((sizeof (set_el_t) * CHAR_BIT) & -i))); | (*reserv_ptr << (((sizeof (set_el_t) * CHAR_BIT) - 1) & -i)));
i++; i++;
if (i == sizeof (set_el_t) * CHAR_BIT) if (i == sizeof (set_el_t) * CHAR_BIT)
i = 0; i = 0;
......
...@@ -261,7 +261,7 @@ init_local_tick (void) ...@@ -261,7 +261,7 @@ init_local_tick (void)
struct timeval tv; struct timeval tv;
gettimeofday (&tv, NULL); gettimeofday (&tv, NULL);
local_tick = tv.tv_sec * 1000 + tv.tv_usec / 1000; local_tick = (unsigned) tv.tv_sec * 1000 + tv.tv_usec / 1000;
} }
#else #else
{ {
......
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