1 | // RUN: rm -rf %t |
2 | // RUN: mkdir %t |
3 | // RUN: touch %t/Module.pcm |
4 | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t %s -fdisable-module-hash -F %S/Inputs -verify |
5 | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t %s -fdisable-module-hash -F %S/Inputs -DIMPLICIT -verify |
6 | |
7 | // This tests that after a fatal module loader error, we do not continue parsing. |
8 | |
9 | #ifdef IMPLICIT |
10 | |
11 | // expected-error@+1{{Module.pcm' is not a valid precompiled module file}} |
12 | #import <Module/Module.h> |
13 | #pragma clang __debug crash; |
14 | |
15 | #else |
16 | |
17 | // expected-error@+1{{Module.pcm' is not a valid precompiled module file}} |
18 | @import Module; |
19 | #pragma clang __debug crash; |
20 | |
21 | #endif |
22 | |
23 | // Also check that libclang does not create a PCH with such an error. |
24 | // RUN: not c-index-test -write-pch %t.pch -fmodules -fimplicit-module-maps -fmodules-cache-path=%t \ |
25 | // RUN: %s -Xclang -fdisable-module-hash -F %S/Inputs 2>&1 | FileCheck %s |
26 | // CHECK: {{^}}Failure: AST deserialization error occurred{{$}} |
27 | |