aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Seaborn <mseaborn@chromium.org>2013-08-29 09:31:36 -0700
committerMark Seaborn <mseaborn@chromium.org>2013-08-29 09:31:36 -0700
commit013bcfcfcd04a3469429771e80997c02fdd03501 (patch)
tree527f0a9a9e34e5aa81b0500522c1e726079bc2e2 /lib
parentba45e4b2c5051b7093a6d5ccd8a2d0a8ac53c45b (diff)
PNaCl bitcode: Remove handling of TYPE_CODE_OPAQUE
Opaque struct types should not appear in LLVM IR that passes the PNaCl ABI verifier. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3590 TEST=PNaCl toolchain trybots Review URL: https://codereview.chromium.org/23738002
Diffstat (limited to 'lib')
-rw-r--r--lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp18
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp2
2 files changed, 1 insertions, 19 deletions
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
index b1d79ce5ac..0eaab6d78b 100644
--- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
+++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
@@ -539,24 +539,6 @@ bool NaClBitcodeReader::ParseTypeTableBody() {
ResultTy = Res;
break;
}
- case naclbitc::TYPE_CODE_OPAQUE: { // OPAQUE: []
- if (Record.size() != 1)
- return Error("Invalid OPAQUE type record");
-
- if (NumRecords >= TypeList.size())
- return Error("invalid TYPE table");
-
- // Check to see if this was forward referenced, if so fill in the temp.
- StructType *Res = cast_or_null<StructType>(TypeList[NumRecords]);
- if (Res) {
- Res->setName(TypeName);
- TypeList[NumRecords] = 0;
- } else // Otherwise, create a new struct with no body.
- Res = StructType::create(Context, TypeName);
- TypeName.clear();
- ResultTy = Res;
- break;
- }
case naclbitc::TYPE_CODE_ARRAY: // ARRAY: [numelts, eltty]
if (Record.size() < 2)
return Error("Invalid ARRAY type record");
diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
index f72f383c39..d4f7c51749 100644
--- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
+++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
@@ -310,7 +310,7 @@ static void WriteTypeTable(const NaClValueEnumerator &VE,
AbbrevToUse = TYPE_STRUCT_ANON_ABBREV;
} else {
if (ST->isOpaque()) {
- Code = naclbitc::TYPE_CODE_OPAQUE;
+ report_fatal_error("Opaque structs not supported in PNaCl bitcode");
} else {
Code = naclbitc::TYPE_CODE_STRUCT_NAMED;
AbbrevToUse = TYPE_STRUCT_NAMED_ABBREV;