diff options
author | Anders Carlsson <andersca@mac.com> | 2008-02-08 00:33:21 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2008-02-08 00:33:21 +0000 |
commit | 5c6c05956e40367520b12f1549f6f922d34ef573 (patch) | |
tree | 87d576f117150b7d120184e952900f496204ad69 /clang/CodeGen | |
parent | 0fae4f56df9e8e6d02012e5e12c0ff2d8d0e012d (diff) | |
download | bcm5719-llvm-5c6c05956e40367520b12f1549f6f922d34ef573.tar.gz bcm5719-llvm-5c6c05956e40367520b12f1549f6f922d34ef573.zip |
Put back the top-level asm code; all tests pass now.
llvm-svn: 46868
Diffstat (limited to 'clang/CodeGen')
-rw-r--r-- | clang/CodeGen/ModuleBuilder.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
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<FileScopeAsmDecl>(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<TypeDecl>(D) && "Unknown top level decl"); // TODO: handle debug info? |