f2932e4661
C-like enums are excluded from this for now, because the code paths specific to them need to be changed. fn foo() -> Option<~int> { Some(~5) } Before: ; Function Attrs: uwtable define void @_ZN3foo18hdec6e36682b87eeaf4v0.0E(%"enum.std::option::Option<~int>[#1]"* noalias nocapture sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 { "function top level": %2 = tail call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN2rt11global_heap10malloc_raw17h56c543b77f9b78aY11v0.9$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 8) %3 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %2 to i64* store i64 5, i64* %3, align 8 %4 = getelementptr inbounds %"enum.std::option::Option<~int>[#1]"* %0, i64 0, i32 0 store i64* %3, i64** %4, align 8 ret void } After: ; Function Attrs: uwtable define %"enum.std::option::Option<~int>[#1]" @_ZN3foo18h2cbf6557a3143edah4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 { "function top level": %1 = tail call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN2rt11global_heap10malloc_raw18hb1e9dd1beab35edau11v0.9$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 8) %2 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %1 to i64* store i64 5, i64* %2, align 8 %oldret = insertvalue %"enum.std::option::Option<~int>[#1]" undef, i64* %2, 0 ret %"enum.std::option::Option<~int>[#1]" %oldret } |
||
---|---|---|
.. | ||
_match.rs | ||
adt.rs | ||
asm.rs | ||
base.rs | ||
basic_block.rs | ||
build.rs | ||
builder.rs | ||
cabi_arm.rs | ||
cabi_mips.rs | ||
cabi_x86_64.rs | ||
cabi_x86.rs | ||
cabi.rs | ||
callee.rs | ||
closure.rs | ||
common.rs | ||
consts.rs | ||
context.rs | ||
controlflow.rs | ||
datum.rs | ||
debuginfo.rs | ||
expr.rs | ||
foreign.rs | ||
glue.rs | ||
inline.rs | ||
intrinsic.rs | ||
llrepr.rs | ||
machine.rs | ||
macros.rs | ||
meth.rs | ||
mod.rs | ||
monomorphize.rs | ||
reflect.rs | ||
tvec.rs | ||
type_.rs | ||
type_of.rs | ||
uniq.rs | ||
value.rs | ||
write_guard.rs |