according to godbolt: https://rust.godbolt.org/z/hP5Y3qMPW
use rand::random;
pub fn main1() {
let mut var : u128;
loop {
var = random();
}
}
pub fn main2() {
loop {
let var : u128 = random();
}
}
compiles to:
example::main1::h45edf333d7832d08:
.Lfunc_begin8:
sub rsp, 24
.LBB8_1:
.Ltmp80:
mov rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
call rax
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp], rax
jmp .LBB8_1
.Ltmp81:
.Lfunc_end8:
example::main2::h1a899b25b96d66db:
.Lfunc_begin9:
sub rsp, 24
.LBB9_1:
.Ltmp82:
mov rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
call rax
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp], rax
jmp .LBB9_1
.Ltmp83:
.Lfunc_end9:
jmp .LBB9_1
So yeah, exactly the same thing.
Ok! Thanks for the clarification !