diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-27 17:17:23 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-27 17:17:23 +0000 |
commit | 0f06b983878c31d30045b193f565135061a6b38c (patch) | |
tree | 7dd8c81fd52e2ee0fa096d06c6027d39ef6b53bb /clang/lib | |
parent | fd433365e08da024ddc99dd0d7bce8e89d8c5469 (diff) | |
download | bcm5719-llvm-0f06b983878c31d30045b193f565135061a6b38c.tar.gz bcm5719-llvm-0f06b983878c31d30045b193f565135061a6b38c.zip |
[modules] Make sure enabled diagnostic pragmas inside the module don't affect the translation unit that
imports the module.
Getting diagnostic sections from modules properly working is a fixme.
rdar://13516663
llvm-svn: 178151
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 95e32a37fe6..033d48c1471 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -2444,8 +2444,14 @@ ASTWriter::inferSubmoduleIDFromLocation(SourceLocation Loc) { return getSubmoduleID(OwningMod); } -void ASTWriter::WritePragmaDiagnosticMappings(const DiagnosticsEngine &Diag) { - // FIXME: Make it work properly with modules. +void ASTWriter::WritePragmaDiagnosticMappings(const DiagnosticsEngine &Diag, + bool isModule) { + // Make sure set diagnostic pragmas don't affect the translation unit that + // imports the module. + // FIXME: Make diagnostic pragma sections work properly with modules. + if (isModule) + return; + llvm::SmallDenseMap<const DiagnosticsEngine::DiagState *, unsigned, 64> DiagStateIDMap; unsigned CurrID = 0; @@ -4048,7 +4054,7 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, WriteOpenCLExtensions(SemaRef); WriteTypeDeclOffsets(); - WritePragmaDiagnosticMappings(Context.getDiagnostics()); + WritePragmaDiagnosticMappings(Context.getDiagnostics(), isModule); WriteCXXBaseSpecifiersOffsets(); |