
This is a follow-up to D134224. The original patch added new `ExcludedHeader` enumerator to `ModuleMap::ModuleHeaderRole` and started associating headers with the modules they were excluded from. This was necessary to consider their module maps as "affecting" in certain situations and in turn serialize them into the PCM. The association of the header and module needs to be handled when deserializing the PCM as well, though. This patch fixes a potential assertion failure and a regression. This essentially reverts parts of feb54b6ded123f8118fdc20620d3f657dfeab485. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D135381
26 lines
611 B
Objective-C
26 lines
611 B
Objective-C
// RUN: rm -rf %t
|
|
// RUN: split-file %s %t
|
|
|
|
//--- frameworks/A.framework/Modules/module.modulemap
|
|
framework module A {
|
|
umbrella header "A.h"
|
|
exclude header "Excluded.h"
|
|
|
|
module Excluded {
|
|
header "Excluded.h"
|
|
}
|
|
}
|
|
//--- frameworks/A.framework/Headers/A.h
|
|
#import <A/Sub.h>
|
|
//--- frameworks/A.framework/Headers/Sub.h
|
|
//--- frameworks/A.framework/Headers/Excluded.h
|
|
#import <A/Sub.h>
|
|
@interface I
|
|
@end
|
|
|
|
//--- tu.m
|
|
#import <A/Excluded.h>
|
|
|
|
// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -iframework %t/frameworks -fsyntax-only %t/tu.m -verify
|
|
// expected-no-diagnostics
|