diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-06 15:10:43 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-06 15:10:43 +0000 |
commit | 2def17935c87f5e6b23d899567ef3dd00ed89d48 (patch) | |
tree | 78000a447829d54c2c4dfdae66314a83c8d2700a /lib/AsmParser/LLParser.cpp | |
parent | fb7cb838b9f99317e80815f74d1baba530086569 (diff) | |
download | external_llvm-2def17935c87f5e6b23d899567ef3dd00ed89d48.zip external_llvm-2def17935c87f5e6b23d899567ef3dd00ed89d48.tar.gz external_llvm-2def17935c87f5e6b23d899567ef3dd00ed89d48.tar.bz2 |
Add support for aliases with linkonce_odr.
This will be used to extend constructor aliases in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192066 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser/LLParser.cpp')
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index bdc7906..d5c5db1 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -627,18 +627,17 @@ bool LLParser::ParseAlias(const std::string &Name, LocTy NameLoc, unsigned Visibility) { assert(Lex.getKind() == lltok::kw_alias); Lex.Lex(); - unsigned Linkage; LocTy LinkageLoc = Lex.getLoc(); - if (ParseOptionalLinkage(Linkage)) + unsigned L; + if (ParseOptionalLinkage(L)) return true; - if (Linkage != GlobalValue::ExternalLinkage && - Linkage != GlobalValue::WeakAnyLinkage && - Linkage != GlobalValue::WeakODRLinkage && - Linkage != GlobalValue::InternalLinkage && - Linkage != GlobalValue::PrivateLinkage && - Linkage != GlobalValue::LinkerPrivateLinkage && - Linkage != GlobalValue::LinkerPrivateWeakLinkage) + GlobalValue::LinkageTypes Linkage = (GlobalValue::LinkageTypes) L; + + if(!GlobalValue::isExternalLinkage(Linkage) && + !GlobalValue::isLocalLinkage(Linkage) && + !GlobalValue::isWeakLinkage(Linkage) && + !GlobalValue::isLinkOnceLinkage(Linkage)) return Error(LinkageLoc, "invalid linkage type for alias"); Constant *Aliasee; |