forked from OSchip/llvm-project
[modules] Don't reject multiple modules providing contents for the same embedded file.
llvm-svn: 254365
This commit is contained in:
parent
38518e9f53
commit
64daf7b1a5
|
@ -1963,7 +1963,8 @@ InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
|
|||
// can lead to problems when lexing using the source locations from the
|
||||
// PCH.
|
||||
SourceManager &SM = getSourceManager();
|
||||
if (!Overridden && SM.isFileOverridden(File)) {
|
||||
// FIXME: Reject if the overrides are different.
|
||||
if ((!Overridden && !Transient) && SM.isFileOverridden(File)) {
|
||||
if (Complain)
|
||||
Error(diag::err_fe_pch_file_overridden, Filename);
|
||||
// After emitting the diagnostic, recover by disabling the override so
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
// RUN: rm -rf %t
|
||||
// RUN: mkdir %t
|
||||
// RUN: echo 'module a { header "a.h" } module b { header "b.h" }' > %t/modulemap
|
||||
// RUN: echo 'extern int t;' > %t/t.h
|
||||
// RUN: echo '#include "t.h"' > %t/a.h
|
||||
// RUN: echo '#include "t.h"' > %t/b.h
|
||||
|
||||
// RUN: %clang_cc1 -fmodules -I%t -fmodules-cache-path=%t -fmodule-map-file=%t/modulemap -fmodules-embed-all-files %s -verify
|
||||
#include "a.h"
|
||||
char t; // expected-error {{different type}}
|
||||
// expected-note@t.h:1 {{here}}
|
||||
#include "t.h"
|
||||
#include "b.h"
|
||||
char t; // expected-error {{different type}}
|
||||
// expected-note@t.h:1 {{here}}
|
Loading…
Reference in New Issue