From bcc3a4bf6421de70637df58db8b9d0fc72154ef9 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 7 Feb 2008 17:19:11 +0000 Subject: Handle top-level asm declarations. llvm-svn: 46855 --- clang/CodeGen/ModuleBuilder.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/CodeGen/ModuleBuilder.cpp') diff --git a/clang/CodeGen/ModuleBuilder.cpp b/clang/CodeGen/ModuleBuilder.cpp index 50d6fedadd5..06467488a5e 100644 --- a/clang/CodeGen/ModuleBuilder.cpp +++ b/clang/CodeGen/ModuleBuilder.cpp @@ -70,6 +70,15 @@ namespace { Builder->WarnUnsupported(LSD, "linkage spec"); // FIXME: implement C++ linkage, C linkage works mostly by C // language reuse already. + } else if (FileScopeAsmDecl *AD = dyn_cast(D)) { + std::string AsmString(AD->getAsmString()->getStrData(), + AD->getAsmString()->getByteLength()); + + const std::string &S = Builder->getModule().getModuleInlineAsm(); + if (S.empty()) + Builder->getModule().setModuleInlineAsm(AsmString); + else + Builder->getModule().setModuleInlineAsm(S + '\n' + AsmString); } else { assert(isa(D) && "Unknown top level decl"); // TODO: handle debug info? -- cgit v1.2.3