summaryrefslogtreecommitdiff
path: root/lib/Linker
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-05-13 18:45:48 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-05-13 18:45:48 +0000
commit834384bf5bd3c104e352d3ef4956541f5932529c (patch)
tree18e02100b208273cba116c513d703b94faf4e8c9 /lib/Linker
parentebfe1f0371a074c771d0fedf9167977bfe6f72e8 (diff)
downloadllvm-834384bf5bd3c104e352d3ef4956541f5932529c.tar.gz
llvm-834384bf5bd3c104e352d3ef4956541f5932529c.tar.bz2
llvm-834384bf5bd3c104e352d3ef4956541f5932529c.tar.xz
Split GlobalValue into GlobalValue and GlobalObject.
This allows code to statically accept a Function or a GlobalVariable, but not an alias. This is already a cleanup by itself IMHO, but the main reason for it is that it gives a lot more confidence that the refactoring to fix the design of GlobalAlias is correct. That will be a followup patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208716 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Linker')
-rw-r--r--lib/Linker/LinkModules.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Linker/LinkModules.cpp b/lib/Linker/LinkModules.cpp
index b742492da0..820f3acace 100644
--- a/lib/Linker/LinkModules.cpp
+++ b/lib/Linker/LinkModules.cpp
@@ -495,15 +495,15 @@ static void forceRenaming(GlobalValue *GV, StringRef Name) {
/// a GlobalValue) from the SrcGV to the DestGV.
static void copyGVAttributes(GlobalValue *DestGV, const GlobalValue *SrcGV) {
// Use the maximum alignment, rather than just copying the alignment of SrcGV.
+ auto *DestGO = dyn_cast<GlobalObject>(DestGV);
unsigned Alignment;
- bool IsAlias = isa<GlobalAlias>(DestGV);
- if (!IsAlias)
- Alignment = std::max(DestGV->getAlignment(), SrcGV->getAlignment());
+ if (DestGO)
+ Alignment = std::max(DestGO->getAlignment(), SrcGV->getAlignment());
DestGV->copyAttributesFrom(SrcGV);
- if (!IsAlias)
- DestGV->setAlignment(Alignment);
+ if (DestGO)
+ DestGO->setAlignment(Alignment);
forceRenaming(DestGV, SrcGV->getName());
}