1985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s
2985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner// RUN: %clang_cc1 -triple i386-apple-darwin -emit-llvm -o - %s
3e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
4e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian// PR5463
5e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanianextern "C" int printf(...);
6e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
7e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanianstruct S {
8e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian  double filler;
9e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian};
10e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
11e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanianstruct Foo {
12e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        Foo(void) : bar_(), dbar_(), sbar_() {
13e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian	  for (int i = 0; i < 5; i++) {
14e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian	    printf("bar_[%d] = %d\n", i, bar_[i]);
15e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian	    printf("dbar_[%d] = %f\n", i, dbar_[i]);
16e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian	    printf("sbar_[%d].filler = %f\n", i, sbar_[i].filler);
17e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian	  }
18e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        }
19e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
20e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        int bar_[5];
21e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        double dbar_[5];
22e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        S sbar_[5];
23e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian};
24e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
25985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattnerint test1(void) {
26e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian        Foo a;
27e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian}
28e8b31cc500473f0e2558c77c8a46458deff6ce51Fariborz Jahanian
29985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner// PR7063
30985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
31985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
32985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattnerstruct Unit
33985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner{
34985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  Unit() {}
35985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  Unit(const Unit& v)  {}
36985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner};
37985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
38985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
39985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattnerstruct Stuff
40985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner{
41985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  Unit leafPos[1];
42985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner};
43985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
44985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
45985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattnerint main()
46985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner{
47985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
48985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  Stuff a;
49985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  Stuff b = a;
50985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner
51985f73960ac76842da4b10c30ca87a282ff9aa31Chris Lattner  return 0;
52124b3def9ed99dc844225aeb6b17f789307500eeChris Lattner}
53