Clang 3.6
clang++ -S -emit-llvm -O2
; Function Attrs: nounwind uwtable
define void @_Z4initP3Out(%struct.Out* nocapture readonly %obj) #3 {
entry:
%ptr = getelementptr inbounds %struct.Out* %obj, i64 0, i32 0
%0 = load %struct.In** %ptr, align 8, !tbaa !1
%1 = bitcast %struct.In* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %1, i8 0, i64 24, i32 8, i1 false)
ret void
}
; Function Attrs: nounwind uwtable
define void @_Z5init2P3Out(%struct.Out* nocapture readonly %obj) #3 {
entry:
%ptr = getelementptr inbounds %struct.Out* %obj, i64 0, i32 0
%0 = load %struct.In** %ptr, align 8, !tbaa !1
%1 = bitcast %struct.In* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %1, i8 0, i64 24, i32 8, i1 false)
ret void
}
GCC 4.9.1
g++ -S -O2
_Z4initP3Out:
.LFB6856:
.cfi_startproc
movq (%rdi), %rax
movq $0, (%rax)
movq $0, 8(%rax)
movq $0, 16(%rax)
ret
_Z5init2P3Out:
.LFB6857:
.cfi_startproc
movq (%rdi), %rax
movq $0, (%rax)
movq $0, 8(%rax)
movq $0, 16(%rax)
ret
Q2xhbmcgMy42IApjbGFuZysrIC1TIC1lbWl0LWxsdm0gLU8yCgo7IEZ1bmN0aW9uIEF0dHJzOiBub3Vud2luZCB1d3RhYmxlCmRlZmluZSB2b2lkIEBfWjRpbml0UDNPdXQoJXN0cnVjdC5PdXQqIG5vY2FwdHVyZSByZWFkb25seSAlb2JqKSAjMyB7CmVudHJ5OgogICVwdHIgPSBnZXRlbGVtZW50cHRyIGluYm91bmRzICVzdHJ1Y3QuT3V0KiAlb2JqLCBpNjQgMCwgaTMyIDAKICAlMCA9IGxvYWQgJXN0cnVjdC5JbioqICVwdHIsIGFsaWduIDgsICF0YmFhICExIAogICUxID0gYml0Y2FzdCAlc3RydWN0LkluKiAlMCB0byBpOCoKICBjYWxsIHZvaWQgQGxsdm0ubWVtc2V0LnAwaTguaTY0KGk4KiAlMSwgaTggMCwgaTY0IDI0LCBpMzIgOCwgaTEgZmFsc2UpCiAgcmV0IHZvaWQgCn0KCjsgRnVuY3Rpb24gQXR0cnM6IG5vdW53aW5kIHV3dGFibGUKZGVmaW5lIHZvaWQgQF9aNWluaXQyUDNPdXQoJXN0cnVjdC5PdXQqIG5vY2FwdHVyZSByZWFkb25seSAlb2JqKSAjMyB7CmVudHJ5OgogICVwdHIgPSBnZXRlbGVtZW50cHRyIGluYm91bmRzICVzdHJ1Y3QuT3V0KiAlb2JqLCBpNjQgMCwgaTMyIDAKICAlMCA9IGxvYWQgJXN0cnVjdC5JbioqICVwdHIsIGFsaWduIDgsICF0YmFhICExIAogICUxID0gYml0Y2FzdCAlc3RydWN0LkluKiAlMCB0byBpOCoKICBjYWxsIHZvaWQgQGxsdm0ubWVtc2V0LnAwaTguaTY0KGk4KiAlMSwgaTggMCwgaTY0IDI0LCBpMzIgOCwgaTEgZmFsc2UpCiAgcmV0IHZvaWQgCn0KCgpHQ0MgNC45LjEKZysrIC1TIC1PMgoKX1o0aW5pdFAzT3V0OgouTEZCNjg1NjoKICAuY2ZpX3N0YXJ0cHJvYwogIG1vdnEgICglcmRpKSwgJXJheAogIG1vdnEgICQwLCAoJXJheCkKICBtb3ZxICAkMCwgOCglcmF4KQogIG1vdnEgICQwLCAxNiglcmF4KQogIHJldCAKCl9aNWluaXQyUDNPdXQ6Ci5MRkI2ODU3OgogIC5jZmlfc3RhcnRwcm9jCiAgbW92cSAgKCVyZGkpLCAlcmF4CiAgbW92cSAgJDAsICglcmF4KQogIG1vdnEgICQwLCA4KCVyYXgpCiAgbW92cSAgJDAsIDE2KCVyYXgpCiAgcmV0IAo=