blob: 691eab458597c26b6bce090679cab156532e6a9b [file] [log] [blame]
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +00001#ifndef HEADER
2#define HEADER
3
Argyrios Kyrtzidis29f98b42012-03-08 01:08:28 +00004#include "blahblah.h"
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +00005void erroneous(int);
6void erroneous(float);
7
Argyrios Kyrtzidis216f78b2012-03-09 20:10:30 +00008struct bar;
9struct zed {
10 bar g;
11};
12struct baz {
13 zed h;
14};
15
16struct S {
17 {
18;
19
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000020#else
21
22void foo(void) {
23 erroneous(0);
24}
25
26#endif
27
Argyrios Kyrtzidis29f98b42012-03-08 01:08:28 +000028// RUN: c-index-test -write-pch %t.h.pch %s -Xclang -detailed-preprocessing-record
29// RUN: c-index-test -test-load-source local %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-PARSE %s
30// RUN: c-index-test -index-file %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-INDEX %s
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000031
Argyrios Kyrtzidis216f78b2012-03-09 20:10:30 +000032// CHECK-PARSE: pch-with-errors.c:{{.*}}:6: FunctionDecl=foo
33// CHECK-PARSE: pch-with-errors.c:{{.*}}:3: CallExpr=erroneous
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000034
35// CHECK-INDEX: [indexDeclaration]: kind: function | name: foo
36// CHECK-INDEX: [indexEntityReference]: kind: function | name: erroneous
37
38// RUN: %clang -fsyntax-only %s -include %t.h 2>&1 | FileCheck -check-prefix=PCH-ERR %s
39
40// PCH-ERR: error: PCH file contains compiler errors