1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// Test this without pch.
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -include %S/struct.h -fsyntax-only -verify %s
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// Test with pch.
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -emit-pch -o %t %S/struct.h
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct Point *p1;
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaofloat getX(struct Point *p1) {
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return p1->x;
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid *get_fun_ptr() {
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return fun->is_ptr? fun->ptr : 0;
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct Fun2 {
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int very_fun;
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao};
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint get_very_fun() {
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return fun2->very_fun;
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint *int_ptr_fail = &fun->is_ptr; // expected-error{{address of bit-field requested}}
27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct Nested nested = { 1, 2 };
29