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