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