summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-06 01:20:28 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-06 01:20:28 +0000
commit42a4c9f9e094419c27e53c4fbc4f2fd23887c7c5 (patch)
tree63f9a89579652de86471aef88e3f56f911476343 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parentf251e0051c269ac5f60839f5cbce7675ea158ca0 (diff)
downloadbcm5719-llvm-42a4c9f9e094419c27e53c4fbc4f2fd23887c7c5.tar.gz
bcm5719-llvm-42a4c9f9e094419c27e53c4fbc4f2fd23887c7c5.zip
Allow aliases to be unnamed_addr.
Alias with unnamed_addr were in a strange state. It is stored in GlobalValue, the language reference talks about "unnamed_addr aliases" but the verifier was rejecting them. It seems natural to allow unnamed_addr in aliases: * It is a property of how it is accessed, not of the data itself. * It is perfectly possible to write code that depends on the address of an alias. This patch then makes unname_addr legal for aliases. One side effect is that the syntax changes for a corner case: In globals, unnamed_addr is now printed before the address space. llvm-svn: 210302
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index 55ed8ceb51b..7793d3e69ed 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -670,8 +670,8 @@ static void WriteModuleInfo(const Module *M, const ValueEnumerator &VE,
Vals.push_back(getEncodedLinkage(A));
Vals.push_back(getEncodedVisibility(A));
Vals.push_back(getEncodedDLLStorageClass(A));
- if (A.isThreadLocal())
- Vals.push_back(getEncodedThreadLocalMode(A));
+ Vals.push_back(getEncodedThreadLocalMode(A));
+ Vals.push_back(A.hasUnnamedAddr());
unsigned AbbrevToUse = 0;
Stream.EmitRecord(bitc::MODULE_CODE_ALIAS, Vals, AbbrevToUse);
Vals.clear();
OpenPOWER on IntegriCloud