• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  #ifndef HEADER
2  #define HEADER
3  
4  #include "blahblah.h"
5  void erroneous(int);
6  void erroneous(float);
7  
8  struct bar;
9  struct zed {
10    bar g;
11  };
12  struct baz {
13    zed h;
14  };
15  
16  void errparm(zed e);
17  
18  struct S {
19    {
20  ;
21  
22  #else
23  
fooS24  void foo(void) {
25    erroneous(0);
26  }
27  
28  #endif
29  
30  // 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
33  
34  // CHECK-PARSE: pch-with-errors.c:{{.*}}:6: FunctionDecl=foo
35  // CHECK-PARSE: pch-with-errors.c:{{.*}}:3: CallExpr=erroneous
36  
37  // CHECK-INDEX: [indexDeclaration]: kind: function | name: foo
38  // CHECK-INDEX: [indexEntityReference]: kind: function | name: erroneous
39  
40  // RUN: not %clang -fsyntax-only %s -include %t.h 2>&1 | FileCheck -check-prefix=PCH-ERR %s
41  // PCH-ERR: error: PCH file contains compiler errors
42  
43  // RUN: not c-index-test -write-pch %t.pch foobar.c 2>&1 | FileCheck -check-prefix=NONEXISTENT %s
44  // NONEXISTENT: Unable to load translation unit
45