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