1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm-bc -o - %s | opt --std-compile-opts | llvm-dis > %t 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: grep "ret i32" %t | count 2 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: grep "ret i32 0" %t | count 2 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// <rdar://problem/6113085> 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct s0 { 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int x, y; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f0() { 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct s0 x = {0}; 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return x.y; 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#if 0 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/* Optimizer isn't smart enough to reduce this since we use 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao memset. Hrm. */ 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f1() { 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao struct s0 x[2] = { {0} }; 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return x[1].x; 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#endif 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f2() { 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int x[2] = { 0 }; 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return x[1]; 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 29