Fix passing self by value for types passed by value
Fix passing self by value for types passed by value

For types that are passed by value, we can't just cast the value to a
pointer, but have to use an alloca and copy the value there. This
handling is already present for all other arguments, but was missing
for "self".

Fixes #6682, #4850 and #4878

dinfuehr/rust,seanrivera/rust,philyoon/rust,pelmers/rust,graydon/rust,dinfuehr/rust,AerialX/rust-rt-minimal,servo/rust,GBGamer/rust,dwillmer/rust,pythonesque/rust,barosl/rust,kmcallister/rust,mahkoh/rust,erickt/rust,aneeshusa/rust,LeoTestard/rust,jroesch/rust,victorvde/rust,jbclements/rust,defuz/rust,ejjeong/rust,nwin/rust,sarojaba/rust-doc-korean,jroesch/rust,miniupnp/rust,KokaKiwi/rust,michaelballantyne/rust-gpu,pythonesque/rust,LeoTestard/rust,zubron/rust,AerialX/rust-rt-minimal,pshc/rust,hauleth/rust,LeoTestard/rust,reem/rust,nwin/rust,hauleth/rust,rprichard/rust,vhbit/rust,victorvde/rust,bombless/rust,emk/rust,aneeshusa/rust,philyoon/rust,avdi/rust,pythonesque/rust,aturon/rust,kmcallister/rust,zaeleus/rust,Ryman/rust,philyoon/rust,mitsuhiko/rust,miniupnp/rust,carols10cents/rust,ebfull/rust,philyoon/rust,sae-bom/rust,pczarn/rust,jashank/rust,graydon/rust,defuz/rust,aneeshusa/rust,fabricedesre/rust,hauleth/rust,barosl/rust,nwin/rust,kwantam/rust,P1start/rust,miniupnp/rust,mahkoh/rust,krzysz00/rust,emk/rust,0x73/rust,Ryman/rust,nwin/rust,nham/rust,SiegeLord/rust,aidancully/rust,j16r/rust,TheNeikos/rust,robertg/rust,zubron/rust,mitsuhiko/rust,omasanori/rust,arthurprs/rand,ebfull/rust,untitaker/rust,omasanori/rust,jbclements/rust,ruud-v-a/rust,mihneadb/rust,LeoTestard/rust,bombless/rust-docs-chinese,GBGamer/rust,defuz/rust,jashank/rust,carols10cents/rust,kimroen/rust,zachwick/rust,zubron/rust,mihneadb/rust,miniupnp/rust,kwantam/rust,ruud-v-a/rust,pczarn/rust,ejjeong/rust,cllns/rust,mdinger/rust,aepsil0n/rust,TheNeikos/rust,aepsil0n/rust,avdi/rust,untitaker/rust,michaelballantyne/rust-gpu,GBGamer/rust,nham/rust,dinfuehr/rust,barosl/rust,rprichard/rust,carols10cents/rust,emk/rust,nham/rust,zachwick/rust,untitaker/rust,mahkoh/rust,fabricedesre/rust,miniupnp/rust,dinfuehr/rust,gifnksm/rust,pythonesque/rust,rprichard/rust,bhickey/rand,sarojaba/rust-doc-korean,rohitjoshi/rust,ejjeong/rust,ktossell/rust,jroesch/rust,bombless/rust,reem/rust,michaelballantyne/rust-gpu,j16r/rust,seanrivera/rust,richo/rust,pshc/rust,XMPPwocky/rust,krzysz00/rust,SiegeLord/rust,KokaKiwi/rust,michaelballantyne/rust-gpu,stepancheg/rust-ide-rust,mvdnes/rust,reem/rust,zubron/rust,mitsuhiko/rust,KokaKiwi/rust,victorvde/rust,ejjeong/rust,j16r/rust,stepancheg/rust-ide-rust,kimroen/rust,aturon/rust,jbclements/rust,zachwick/rust,zachwick/rust,mitsuhiko/rust,aturon/rust,ktossell/rust,aturon/rust,KokaKiwi/rust,zaeleus/rust,zaeleus/rust,0x73/rust,graydon/rust,dinfuehr/rust,erickt/rust,andars/rust,stepancheg/rust-ide-rust,nwin/rust,mitsuhiko/rust,stepancheg/rust-ide-rust,bombless/rust,dinfuehr/rust,0x73/rust,krzysz00/rust,mdinger/rust,avdi/rust,ktossell/rust,rohitjoshi/rust,sae-bom/rust,kmcallister/rust,jashank/rust,krzysz00/rust,nwin/rust,AerialX/rust-rt-minimal,mahkoh/rust,barosl/rust,ejjeong/rust,AerialX/rust,sarojaba/rust-doc-korean,cllns/rust,P1start/rust,sae-bom/rust,untitaker/rust,stepancheg/rust-ide-rust,pelmers/rust,defuz/rust,carols10cents/rust,vhbit/rust,jbclements/rust,AerialX/rust,miniupnp/rust,gifnksm/rust,gifnksm/rust,omasanori/rust,AerialX/rust,jashank/rust,0x73/rust,bluss/rand,XMPPwocky/rust,AerialX/rust-rt-minimal,jroesch/rust,robertg/rust,l0kod/rust,michaelballantyne/rust-gpu,aturon/rust,robertg/rust,defuz/rust,bombless/rust,pczarn/rust,graydon/rust,servo/rust,TheNeikos/rust,jashank/rust,dwillmer/rust,erickt/rust,cllns/rust,mdinger/rust,SiegeLord/rust,shepmaster/rand,kwantam/rust,mvdnes/rust,j16r/rust,pczarn/rust,avdi/rust,seanrivera/rust,barosl/rust,erickt/rust,GBGamer/rust,bombless/rust,philyoon/rust,j16r/rust,reem/rust,rprichard/rust,rohitjoshi/rust,servo/rust,sarojaba/rust-doc-korean,richo/rust,mvdnes/rust,TheNeikos/rust,ktossell/rust,omasanori/rust,Ryman/rust,jashank/rust,zachwick/rust,kmcallister/rust,zaeleus/rust,aidancully/rust,Ryman/rust,krzysz00/rust,nham/rust,KokaKiwi/rust,waynenilsen/rand,fabricedesre/rust,nham/rust,aneeshusa/rust,gifnksm/rust,michaelballantyne/rust-gpu,GBGamer/rust,fabricedesre/rust,AerialX/rust,quornian/rust,ebfull/rust,sae-bom/rust,sae-bom/rust,AerialX/rust,ruud-v-a/rust,aepsil0n/rust,ruud-v-a/rust,P1start/rust,huonw/rand,kmcallister/rust,jroesch/rust,untitaker/rust,quornian/rust,rprichard/rust,vhbit/rust,servo/rust,P1start/rust,nwin/rust,GrahamDennis/rand,ruud-v-a/rust,sarojaba/rust-doc-korean,cllns/rust,seanrivera/rust,GBGamer/rust,achanda/rand,ebfull/rust,kwantam/rust,pshc/rust,mihneadb/rust,mvdnes/rust,jroesch/rust,sae-bom/rust,dwillmer/rust,pelmers/rust,mitsuhiko/rust,pythonesque/rust,stepancheg/rust-ide-rust,KokaKiwi/rust,cllns/rust,jbclements/rust,kmcallister/rust,mihneadb/rust,SiegeLord/rust,P1start/rust,mihneadb/rust,vhbit/rust,AerialX/rust-rt-minimal,ebfull/rust,jbclements/rust,pelmers/rust,mvdnes/rust,graydon/rust,pshc/rust,fabricedesre/rust,SiegeLord/rust,robertg/rust,emk/rust,omasanori/rust,emk/rust,mitsuhiko/rust,servo/rust,Ryman/rust,pshc/rust,TheNeikos/rust,kimroen/rust,erickt/rust,rohitjoshi/rust,XMPPwocky/rust,vhbit/rust,pshc/rust,pczarn/rust,quornian/rust,andars/rust,zaeleus/rust,carols10cents/rust,quornian/rust,P1start/rust,zubron/rust,michaelballantyne/rust-gpu,andars/rust,ktossell/rust,richo/rust,kmcallister/rust,erickt/rust,dwillmer/rust,dwillmer/rust,aepsil0n/rust,emk/rust,aturon/rust,aneeshusa/rust,cllns/rust,XMPPwocky/rust,andars/rust,aepsil0n/rust,untitaker/rust,bombless/rust,jbclements/rust,richo/rust,andars/rust,AerialX/rust-rt-minimal,sarojaba/rust-doc-korean,andars/rust,vhbit/rust,pelmers/rust,gifnksm/rust,pythonesque/rust,barosl/rust,kimroen/rust,kimroen/rust,nham/rust,reem/rust,sarojaba/rust-doc-korean,erickt/rust,rohitjoshi/rust,mahkoh/rust,0x73/rust,richo/rust,pczarn/rust,aepsil0n/rust,l0kod/rust,emk/rust,l0kod/rust,l0kod/rust,ruud-v-a/rust,mdinger/rust,retep998/rand,mihneadb/rust,zaeleus/rust,ebfull/rand,j16r/rust,hauleth/rust,nwin/rust,aneeshusa/rust,zubron/rust,seanrivera/rust,SiegeLord/rust,rohitjoshi/rust,defuz/rust,jbclements/rust,kwantam/rust,mahkoh/rust,servo/rust,jashank/rust,aidancully/rust,Ryman/rust,GBGamer/rust,Ryman/rust,hauleth/rust,carols10cents/rust,vhbit/rust,miniupnp/rust,mdinger/rust,XMPPwocky/rust,pczarn/rust,stepancheg/rust-ide-rust,LeoTestard/rust,quornian/rust,l0kod/rust,omasanori/rust,LeoTestard/rust,mdinger/rust,richo/rust,mvdnes/rust,pelmers/rust,quornian/rust,GBGamer/rust,rprichard/rust,victorvde/rust,hauleth/rust,P1start/rust,barosl/rust,servo/rust,l0kod/rust,XMPPwocky/rust,pshc/rust,jashank/rust,fabricedesre/rust,zubron/rust,vhbit/rust,aidancully/rust,nham/rust,aturon/rust,dwillmer/rust,LeoTestard/rust,zachwick/rust,reem/rust,l0kod/rust,victorvde/rust,AerialX/rust,jroesch/rust,philyoon/rust,kimroen/rust,TheNeikos/rust,fabricedesre/rust,ktossell/rust,robertg/rust,gifnksm/rust,jbclements/rust,kimroen/rust,aidancully/rust,avdi/rust,krzysz00/rust,dwillmer/rust,ejjeong/rust,pythonesque/rust,l0kod/rust,ktossell/rust,zubron/rust,pshc/rust,j16r/rust,quornian/rust,aidancully/rust,kwantam/rust,dwillmer/rust,miniupnp/rust,graydon/rust,ebfull/rust,robertg/rust,0x73/rust,jroesch/rust,0x73/rust,seanrivera/rust,avdi/rust,victorvde/rust,SiegeLord/rust