diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 2355198..8223f76 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -714,8 +714,7 @@
 
     // Read a record.
     Record.clear();
-    unsigned VSTCode = Stream.ReadRecord(Code, Record);
-    switch (VSTCode) {
+    switch (Stream.ReadRecord(Code, Record)) {
     default:  // Default behavior: unknown type.
       break;
     case bitc::VST_CODE_ENTRY: {  // VST_ENTRY: [valueid, namechar x N]
@@ -730,17 +729,13 @@
       ValueName.clear();
       break;
     }
-    case bitc::VST_CODE_BBENTRY:
-    case bitc::VST_CODE_LPADENTRY: {
+    case bitc::VST_CODE_BBENTRY: {
       if (ConvertToString(Record, 1, ValueName))
         return Error("Invalid VST_BBENTRY record");
       BasicBlock *BB = getBasicBlock(Record[0]);
       if (BB == 0)
         return Error("Invalid BB ID in VST_BBENTRY record");
 
-      if (VSTCode == bitc::VST_CODE_LPADENTRY)
-        BB->setIsLandingPad(true);
-
       BB->setName(StringRef(ValueName.data(), ValueName.size()));
       ValueName.clear();
       break;
