diff options
author | Mark Seaborn <mseaborn@chromium.org> | 2013-08-29 09:31:36 -0700 |
---|---|---|
committer | Mark Seaborn <mseaborn@chromium.org> | 2013-08-29 09:31:36 -0700 |
commit | 013bcfcfcd04a3469429771e80997c02fdd03501 (patch) | |
tree | 527f0a9a9e34e5aa81b0500522c1e726079bc2e2 /lib | |
parent | ba45e4b2c5051b7093a6d5ccd8a2d0a8ac53c45b (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.cpp | 18 | ||||
-rw-r--r-- | lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp | 2 |
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; |