summaryrefslogtreecommitdiffstats
path: root/clang/AST/DeclSerialization.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2008-02-07 17:19:11 +0000
committerAnders Carlsson <andersca@mac.com>2008-02-07 17:19:11 +0000
commitbcc3a4bf6421de70637df58db8b9d0fc72154ef9 (patch)
tree2019d7aef2eea31995ec557044b67a358c7d878a /clang/AST/DeclSerialization.cpp
parent63a8452e9ce57568b502808dc0e59209d7e71b54 (diff)
downloadbcm5719-llvm-bcc3a4bf6421de70637df58db8b9d0fc72154ef9.tar.gz
bcm5719-llvm-bcc3a4bf6421de70637df58db8b9d0fc72154ef9.zip
Handle top-level asm declarations.
llvm-svn: 46855
Diffstat (limited to 'clang/AST/DeclSerialization.cpp')
-rw-r--r--clang/AST/DeclSerialization.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/AST/DeclSerialization.cpp b/clang/AST/DeclSerialization.cpp
index 146ebbacbe1..cb91846a027 100644
--- a/clang/AST/DeclSerialization.cpp
+++ b/clang/AST/DeclSerialization.cpp
@@ -67,6 +67,9 @@ Decl* Decl::Create(Deserializer& D) {
case Typedef:
return TypedefDecl::CreateImpl(D);
+
+ case FileScopeAsm:
+ return FileScopeAsmDecl::CreateImpl(D);
}
}
@@ -438,3 +441,23 @@ void LinkageSpecDecl::ReadInRec(Deserializer& D) {
Language = static_cast<LanguageIDs>(D.ReadInt());
D.ReadPtr(this->D);
}
+
+//===----------------------------------------------------------------------===//
+// FileScopeAsm Serialization.
+//===----------------------------------------------------------------------===//
+
+void FileScopeAsmDecl::EmitImpl(llvm::Serializer& S) const
+{
+ Decl::EmitInRec(S);
+ S.EmitOwnedPtr(AsmString);
+}
+
+FileScopeAsmDecl* FileScopeAsmDecl::CreateImpl(Deserializer& D) {
+ FileScopeAsmDecl* decl = new FileScopeAsmDecl(SourceLocation(), 0);
+
+ decl->Decl::ReadInRec(D);
+ decl->AsmString = cast<StringLiteral>(D.ReadOwnedPtr<Expr>());
+// D.ReadOwnedPtr(D.ReadOwnedPtr<StringLiteral>())<#T * * Ptr#>, <#bool AutoRegister#>)(decl->AsmString);
+
+ return decl;
+}
OpenPOWER on IntegriCloud