// RUN: %clang_cc1 %s -include %s
// RUN: %clang_cc1 %s -emit-pch -o %t.pch
// RUN: %clang_cc1 %s -include-pch %t.pch

// rdar://12239321 Make sure we don't emit a bogus
//     error: field designator 'e' does not refer to a non-static data member

#ifndef HEADER
#define HEADER
//===----------------------------------------------------------------------===//

struct U {
  union {
    struct {
      int e;
      int f;
    };

    int a;
  };
};

//===----------------------------------------------------------------------===//
#else
#if !defined(HEADER)
# error Header inclusion order messed up
#endif
//===----------------------------------------------------------------------===//

void bar() {
  static const struct U plan = { .e = 1 };
}

//===----------------------------------------------------------------------===//
#endif
