diff options
author | Douglas Gregor <dgregor@apple.com> | 2015-12-08 22:43:32 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2015-12-08 22:43:32 +0000 |
commit | 8f64ca152985ac199ba8e2e6a94ebdba2ebd2db6 (patch) | |
tree | 7c41c0f664e7ad8e89319b7bee78a35a0ae8f3b6 /clang/lib | |
parent | d16c8065ff2e3c0030bb2e74ee6ffea80f46c7d6 (diff) | |
download | bcm5719-llvm-8f64ca152985ac199ba8e2e6a94ebdba2ebd2db6.tar.gz bcm5719-llvm-8f64ca152985ac199ba8e2e6a94ebdba2ebd2db6.zip |
Module file extensions: pass a Sema through to the extension writer.
Module file extensions are likely to need access to
Sema/Preprocessor/ASTContext, and cannot get it through other
sources.
llvm-svn: 255065
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Frontend/TestModuleFileExtension.cpp | 1 | ||||
-rw-r--r-- | clang/lib/Frontend/TestModuleFileExtension.h | 3 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 7 |
3 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Frontend/TestModuleFileExtension.cpp b/clang/lib/Frontend/TestModuleFileExtension.cpp index c020468ce0f..d1b20c4a80b 100644 --- a/clang/lib/Frontend/TestModuleFileExtension.cpp +++ b/clang/lib/Frontend/TestModuleFileExtension.cpp @@ -19,6 +19,7 @@ using namespace clang::serialization; TestModuleFileExtension::Writer::~Writer() { } void TestModuleFileExtension::Writer::writeExtensionContents( + Sema &SemaRef, llvm::BitstreamWriter &Stream) { using namespace llvm; diff --git a/clang/lib/Frontend/TestModuleFileExtension.h b/clang/lib/Frontend/TestModuleFileExtension.h index 2a7245463cf..41f3ca9f05f 100644 --- a/clang/lib/Frontend/TestModuleFileExtension.h +++ b/clang/lib/Frontend/TestModuleFileExtension.h @@ -30,7 +30,8 @@ class TestModuleFileExtension : public ModuleFileExtension { Writer(ModuleFileExtension *Ext) : ModuleFileExtensionWriter(Ext) { } ~Writer() override; - void writeExtensionContents(llvm::BitstreamWriter &Stream) override; + void writeExtensionContents(Sema &SemaRef, + llvm::BitstreamWriter &Stream) override; }; class Reader : public ModuleFileExtensionReader { diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 7d3cefed741..128935c5c73 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -3880,7 +3880,8 @@ void ASTWriter::WriteOptimizePragmaOptions(Sema &SemaRef) { Stream.EmitRecord(OPTIMIZE_PRAGMA_OPTIONS, Record); } -void ASTWriter::WriteModuleFileExtension(ModuleFileExtensionWriter &Writer) { +void ASTWriter::WriteModuleFileExtension(Sema &SemaRef, + ModuleFileExtensionWriter &Writer) { // Enter the extension block. Stream.EnterSubblock(EXTENSION_BLOCK_ID, 4); @@ -3908,7 +3909,7 @@ void ASTWriter::WriteModuleFileExtension(ModuleFileExtensionWriter &Writer) { Stream.EmitRecordWithBlob(Abbrev, Record, Buffer); // Emit the contents of the extension block. - Writer.writeExtensionContents(Stream); + Writer.writeExtensionContents(SemaRef, Stream); // Exit the extension block. Stream.ExitBlock(); @@ -4563,7 +4564,7 @@ uint64_t ASTWriter::WriteASTCore(Sema &SemaRef, StringRef isysroot, // Write the module file extension blocks. for (const auto &ExtWriter : ModuleFileExtensionWriters) - WriteModuleFileExtension(*ExtWriter); + WriteModuleFileExtension(SemaRef, *ExtWriter); return Signature; } |