aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-05-03 14:35:27 +0200
committerBjörn Gustavsson <[email protected]>2011-05-11 09:21:22 +0200
commit54b677e80cdd1da685c69d349ca83e68dce5b991 (patch)
tree6a457c1f07aa5466c8c92718275692f22c3807b9 /erts/emulator
parent8d1dd7079fdcd22765b30a1268649022360f6f56 (diff)
downloadotp-54b677e80cdd1da685c69d349ca83e68dce5b991.tar.gz
otp-54b677e80cdd1da685c69d349ca83e68dce5b991.tar.bz2
otp-54b677e80cdd1da685c69d349ca83e68dce5b991.zip
Eliminate alias warning in gcc 4.5.2
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/beam_emu.c9
-rw-r--r--erts/emulator/beam/erl_process.c3
2 files changed, 8 insertions, 4 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 32ea8588d2..d5d113200a 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -1911,13 +1911,15 @@ void process_main(void)
* Note that for the halfword emulator, the two first elements
* of the array are used.
*/
- *((BeamInstr **) (UWord) c_p->def_arg_reg) = I+3;
+ BeamInstr** pi = (BeamInstr**) c_p->def_arg_reg;
+ *pi = I+3;
set_timer(c_p, unsigned_val(timeout_value));
} else if (timeout_value == am_infinity) {
c_p->flags |= F_TIMO;
#if !defined(ARCH_64) || HALFWORD_HEAP
} else if (term_to_Uint(timeout_value, &time_val)) {
- *((BeamInstr **) (UWord) c_p->def_arg_reg) = I+3;
+ BeamInstr** pi = (BeamInstr**) c_p->def_arg_reg;
+ *pi = I+3;
set_timer(c_p, time_val);
#endif
} else { /* Wrong time */
@@ -1974,7 +1976,8 @@ void process_main(void)
* we must test the F_INSLPQUEUE flag as well as the F_TIMO flag.
*/
if ((c_p->flags & (F_INSLPQUEUE | F_TIMO)) == 0) {
- *((BeamInstr **) (UWord) c_p->def_arg_reg) = I+3;
+ BeamInstr** p = (BeamInstr **) c_p->def_arg_reg;
+ *p = I+3;
set_timer(c_p, Arg(1));
}
goto wait2;
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 31f23d3978..7a578ec882 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -7603,7 +7603,8 @@ continue_exit_process(Process *p
static void
timeout_proc(Process* p)
{
- p->i = *((BeamInstr **) (UWord) p->def_arg_reg);
+ BeamInstr** pi = (BeamInstr **) p->def_arg_reg;
+ p->i = *pi;
p->flags |= F_TIMO;
p->flags &= ~F_INSLPQUEUE;