diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-03-08 00:03:56 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-03-08 00:03:56 +0000 |
commit | 9bca298f6d9dadb1f304ad63becfe28a0eda1b0b (patch) | |
tree | f7090390710aff9cf1cca5469935e4d82cd69add /clang/lib/Serialization/ASTReader.cpp | |
parent | 7f928f14f4235e0cb593857aca4fcedea157c4de (diff) | |
download | bcm5719-llvm-9bca298f6d9dadb1f304ad63becfe28a0eda1b0b.tar.gz bcm5719-llvm-9bca298f6d9dadb1f304ad63becfe28a0eda1b0b.zip |
Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"'
blocks when building in C mode, and serialize and deserialize the attribute.
llvm-svn: 203317
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 7e31723b165..6f4dc9bfb58 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -3996,15 +3996,17 @@ bool ASTReader::ReadSubmoduleBlock(ModuleFile &F) { } StringRef Name = Blob; - SubmoduleID GlobalID = getGlobalSubmoduleID(F, Record[0]); - SubmoduleID Parent = getGlobalSubmoduleID(F, Record[1]); - bool IsFramework = Record[2]; - bool IsExplicit = Record[3]; - bool IsSystem = Record[4]; - bool InferSubmodules = Record[5]; - bool InferExplicitSubmodules = Record[6]; - bool InferExportWildcard = Record[7]; - bool ConfigMacrosExhaustive = Record[8]; + unsigned Idx = 0; + SubmoduleID GlobalID = getGlobalSubmoduleID(F, Record[Idx++]); + SubmoduleID Parent = getGlobalSubmoduleID(F, Record[Idx++]); + bool IsFramework = Record[Idx++]; + bool IsExplicit = Record[Idx++]; + bool IsSystem = Record[Idx++]; + bool IsExternC = Record[Idx++]; + bool InferSubmodules = Record[Idx++]; + bool InferExplicitSubmodules = Record[Idx++]; + bool InferExportWildcard = Record[Idx++]; + bool ConfigMacrosExhaustive = Record[Idx++]; Module *ParentModule = 0; if (Parent) @@ -4040,6 +4042,7 @@ bool ASTReader::ReadSubmoduleBlock(ModuleFile &F) { CurrentModule->IsFromModuleFile = true; CurrentModule->IsSystem = IsSystem || CurrentModule->IsSystem; + CurrentModule->IsExternC = IsExternC; CurrentModule->InferSubmodules = InferSubmodules; CurrentModule->InferExplicitSubmodules = InferExplicitSubmodules; CurrentModule->InferExportWildcard = InferExportWildcard; |