llvm-capstone/clang/test/Modules/invalid-pch-module-id.m
Bruno Cardoso Lopes 17da34d2bd [PCH] Fix a regression when PCH is used with -fmodules
Following up on r291465 after a regression in r276159. When we use
-fmodule-name=X while building a PCH, modular headers in X will be
textually included and the compiler knows that we are not building
module X, so don't serialize such headers in the PCH as being part of a
module, because at this point they are not.

This was causing subtle bugs and malformed AST crashes, for instance,
when using the PCH in subsequent compiler invocation with -fmodules, the
HFI for a modular header would map to the PCH, which would force a
module load of and unexistent module ID.

rdar://problem/30171164

llvm-svn: 294361
2017-02-07 21:54:57 +00:00

14 lines
553 B
Objective-C

// RUN: rm -rf %t.cache
//
// RUN: %clang_cc1 -x objective-c-header -fmodules -F%S/Inputs/invalid-module-id \
// RUN: -fmodule-implementation-of NC -fmodules-cache-path=%t.cache \
// RUN: -fimplicit-module-maps \
// RUN: -emit-pch %S/Inputs/invalid-module-id/NC-Prefix.pch -o %t.pch
//
// RUN: %clang_cc1 -x objective-c -fmodules -F%S/Inputs/invalid-module-id \
// RUN: -fmodule-implementation-of NC -fmodules-cache-path=%t.cache \
// RUN: -fimplicit-module-maps -include-pch %t.pch %s -fsyntax-only
#import <NC/NULog.h>
#import <NC/NUGeometry.h>