blob: 2d396134e5f2a1cde74baea6cd7b22528f2b5ed2 [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
Argyrios Kyrtzidisba50b3e2012-03-09 21:09:04 +000016void errparm(zed e);
17
Argyrios Kyrtzidis216f78b2012-03-09 20:10:30 +000018struct S {
19 {
20;
21
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000022#else
23
24void foo(void) {
25 erroneous(0);
26}
27
28#endif
29
Argyrios Kyrtzidis29f98b42012-03-08 01:08:28 +000030// RUN: c-index-test -write-pch %t.h.pch %s -Xclang -detailed-preprocessing-record
31// RUN: c-index-test -test-load-source local %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-PARSE %s
32// 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 +000033
Argyrios Kyrtzidis216f78b2012-03-09 20:10:30 +000034// CHECK-PARSE: pch-with-errors.c:{{.*}}:6: FunctionDecl=foo
35// CHECK-PARSE: pch-with-errors.c:{{.*}}:3: CallExpr=erroneous
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000036
37// CHECK-INDEX: [indexDeclaration]: kind: function | name: foo
38// CHECK-INDEX: [indexEntityReference]: kind: function | name: erroneous
39
40// RUN: %clang -fsyntax-only %s -include %t.h 2>&1 | FileCheck -check-prefix=PCH-ERR %s
Argyrios Kyrtzidisbef35c92012-03-07 01:51:17 +000041// PCH-ERR: error: PCH file contains compiler errors
Argyrios Kyrtzidis374a00b2012-06-08 05:48:06 +000042
43// RUN: c-index-test -write-pch %t.pch foobar.c 2>&1 | FileCheck -check-prefix=NONEXISTENT %s
44// NONEXISTENT: Unable to load translation unit