llvm-project/clang/test/Modules/module-pch-different-cache-path.c
Volodymyr Sapsai fdf8e3e311
[Modules][Diagnostic] Mention which AST file's options differ from the current TU options. (#101413)
Claiming a mismatch is always in a precompiled header is wrong and
misleading as a mismatch can happen in any provided AST file. Emitting a
path for a file with a problem allows to disambiguate between multiple
input files.

Use generic term "AST file" because we don't always know a kind of the
provided file (for example, see `ASTReader::readASTFileControlBlock`).

rdar://65005546
2024-08-08 11:23:47 -03:00

19 lines
970 B
C

// RUN: rm -rf %t
// RUN: mkdir %t
//
// RUN: %clang_cc1 -x objective-c-header -emit-pch %S/Inputs/pch-typedef.h -o %t/pch-typedef.h.gch \
// RUN: -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/one
//
// RUN: not %clang_cc1 -x objective-c -fsyntax-only %s -include-pch %t/pch-typedef.h.gch \
// RUN: -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/two 2>&1 \
// RUN: | FileCheck %s -check-prefixes=CHECK-ERROR
//
// RUN: %clang_cc1 -x objective-c -fsyntax-only %s -include-pch %t/pch-typedef.h.gch \
// RUN: -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/two 2>&1 -fallow-pch-with-different-modules-cache-path \
// RUN: | FileCheck %s -check-prefixes=CHECK-SUCCESS -allow-empty
pch_int x = 0;
// CHECK-ERROR: AST file '{{.*}}' was compiled with module cache path '{{.*}}', but the path is currently '{{.*}}'
// CHECK-SUCCESS-NOT: AST file '{{.*}}' was compiled with module cache path '{{.*}}', but the path is currently '{{.*}}'