aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bitcode')
-rw-r--r--lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp4
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp1
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp4
3 files changed, 8 insertions, 1 deletions
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
index cccc5cee5a..eaaa85a164 100644
--- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
+++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
@@ -449,6 +449,10 @@ bool NaClBitcodeReader::ParseTypeTableBody() {
ResultTy = Type::getDoubleTy(Context);
break;
case naclbitc::TYPE_CODE_LABEL: // LABEL
+ // TODO(mseaborn): Remove this case when we drop support for v1
+ // of the PNaCl bitcode format.
+ if (GetPNaClVersion() >= 2)
+ return Error("Label type not supported in PNaCl bitcode");
ResultTy = Type::getLabelTy(Context);
break;
case naclbitc::TYPE_CODE_INTEGER: // INTEGER: [width]
diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
index ec13266221..166a95bb23 100644
--- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
+++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
@@ -224,7 +224,6 @@ static void WriteTypeTable(const NaClValueEnumerator &VE,
case Type::VoidTyID: Code = naclbitc::TYPE_CODE_VOID; break;
case Type::FloatTyID: Code = naclbitc::TYPE_CODE_FLOAT; break;
case Type::DoubleTyID: Code = naclbitc::TYPE_CODE_DOUBLE; break;
- case Type::LabelTyID: Code = naclbitc::TYPE_CODE_LABEL; break;
case Type::IntegerTyID:
// INTEGER: [width]
Code = naclbitc::TYPE_CODE_INTEGER;
diff --git a/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
index a58a421db2..64d7661415 100644
--- a/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
+++ b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
@@ -299,6 +299,10 @@ void NaClValueEnumerator::EnumerateValue(const Value *VIn) {
void NaClValueEnumerator::EnumerateType(Type *Ty, bool InsideOptimizeTypes) {
+ // The label type does not need to be given a type ID.
+ if (Ty->isLabelTy())
+ return;
+
// This function is used to enumerate types referenced by the given
// module. This function is called in two phases, based on the value
// of TypeCountMap. These phases are: