about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-08-09 23:04:28 -0700
committerBrian Anderson <banderson@mozilla.com>2013-08-16 13:24:24 -0700
commit9c71f4f1e097e2dbd434fa027f0638c77a9dc823 (patch)
tree67a2ac00808c2f20aa34b649adcf5db96522283c
parent5923cc37458d609c66849df3613464f474cad9cd (diff)
downloadrust-9c71f4f1e097e2dbd434fa027f0638c77a9dc823.tar.gz
rust-9c71f4f1e097e2dbd434fa027f0638c77a9dc823.zip
Remove the annihilate lang item
-rw-r--r--src/librustc/middle/lang_items.rs90
-rw-r--r--src/librustc/middle/trans/base.rs16
-rw-r--r--src/libstd/unstable/lang.rs5
3 files changed, 44 insertions, 67 deletions
diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs
index 42bc435a58a..ae9d3d5ec0e 100644
--- a/src/librustc/middle/lang_items.rs
+++ b/src/librustc/middle/lang_items.rs
@@ -57,28 +57,27 @@ pub enum LangItem {
 
     StrEqFnLangItem,                   // 19
     UniqStrEqFnLangItem,               // 20
-    AnnihilateFnLangItem,              // 21
-    LogTypeFnLangItem,                 // 22
-    FailFnLangItem,                    // 23
-    FailBoundsCheckFnLangItem,         // 24
-    ExchangeMallocFnLangItem,          // 25
-    ClosureExchangeMallocFnLangItem,   // 26
-    ExchangeFreeFnLangItem,            // 27
-    MallocFnLangItem,                  // 28
-    FreeFnLangItem,                    // 29
-    BorrowAsImmFnLangItem,             // 30
-    BorrowAsMutFnLangItem,             // 31
-    ReturnToMutFnLangItem,             // 32
-    CheckNotBorrowedFnLangItem,        // 33
-    StrDupUniqFnLangItem,              // 34
-    RecordBorrowFnLangItem,            // 35
-    UnrecordBorrowFnLangItem,          // 36
-
-    StartFnLangItem,                   // 37
-
-    TyDescStructLangItem,              // 38
-    TyVisitorTraitLangItem,            // 39
-    OpaqueStructLangItem,              // 40
+    LogTypeFnLangItem,                 // 21
+    FailFnLangItem,                    // 22
+    FailBoundsCheckFnLangItem,         // 23
+    ExchangeMallocFnLangItem,          // 24
+    ClosureExchangeMallocFnLangItem,   // 25
+    ExchangeFreeFnLangItem,            // 26
+    MallocFnLangItem,                  // 27
+    FreeFnLangItem,                    // 28
+    BorrowAsImmFnLangItem,             // 29
+    BorrowAsMutFnLangItem,             // 30
+    ReturnToMutFnLangItem,             // 31
+    CheckNotBorrowedFnLangItem,        // 32
+    StrDupUniqFnLangItem,              // 33
+    RecordBorrowFnLangItem,            // 34
+    UnrecordBorrowFnLangItem,          // 35
+
+    StartFnLangItem,                   // 36
+
+    TyDescStructLangItem,              // 37
+    TyVisitorTraitLangItem,            // 38
+    OpaqueStructLangItem,              // 39
 }
 
 pub struct LanguageItems {
@@ -122,28 +121,27 @@ impl LanguageItems {
 
             19 => "str_eq",
             20 => "uniq_str_eq",
-            21 => "annihilate",
-            22 => "log_type",
-            23 => "fail_",
-            24 => "fail_bounds_check",
-            25 => "exchange_malloc",
-            26 => "closure_exchange_malloc",
-            27 => "exchange_free",
-            28 => "malloc",
-            29 => "free",
-            30 => "borrow_as_imm",
-            31 => "borrow_as_mut",
-            32 => "return_to_mut",
-            33 => "check_not_borrowed",
-            34 => "strdup_uniq",
-            35 => "record_borrow",
-            36 => "unrecord_borrow",
-
-            37 => "start",
-
-            38 => "ty_desc",
-            39 => "ty_visitor",
-            40 => "opaque",
+            21 => "log_type",
+            22 => "fail_",
+            23 => "fail_bounds_check",
+            24 => "exchange_malloc",
+            25 => "closure_exchange_malloc",
+            26 => "exchange_free",
+            27 => "malloc",
+            28 => "free",
+            29 => "borrow_as_imm",
+            30 => "borrow_as_mut",
+            31 => "return_to_mut",
+            32 => "check_not_borrowed",
+            33 => "strdup_uniq",
+            34 => "record_borrow",
+            35 => "unrecord_borrow",
+
+            36 => "start",
+
+            37 => "ty_desc",
+            38 => "ty_visitor",
+            39 => "opaque",
 
             _ => "???"
         }
@@ -226,9 +224,6 @@ impl LanguageItems {
     pub fn uniq_str_eq_fn(&self) -> Option<def_id> {
         self.items[UniqStrEqFnLangItem as uint]
     }
-    pub fn annihilate_fn(&self) -> Option<def_id> {
-        self.items[AnnihilateFnLangItem as uint]
-    }
     pub fn log_type_fn(&self) -> Option<def_id> {
         self.items[LogTypeFnLangItem as uint]
     }
@@ -327,7 +322,6 @@ impl<'self> LanguageItemCollector<'self> {
 
         item_refs.insert(@"str_eq", StrEqFnLangItem as uint);
         item_refs.insert(@"uniq_str_eq", UniqStrEqFnLangItem as uint);
-        item_refs.insert(@"annihilate", AnnihilateFnLangItem as uint);
         item_refs.insert(@"log_type", LogTypeFnLangItem as uint);
         item_refs.insert(@"fail_", FailFnLangItem as uint);
         item_refs.insert(@"fail_bounds_check",
diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs
index 84b3ab20407..8fd5f770367 100644
--- a/src/librustc/middle/trans/base.rs
+++ b/src/librustc/middle/trans/base.rs
@@ -2906,24 +2906,12 @@ pub fn fill_crate_map(ccx: @mut CrateContext, map: ValueRef) {
     }
     subcrates.push(C_int(ccx, 0));
 
-    let llannihilatefn = match ccx.tcx.lang_items.annihilate_fn() {
-        Some(annihilate_def_id) => {
-            if annihilate_def_id.crate == ast::LOCAL_CRATE {
-                get_item_val(ccx, annihilate_def_id.node)
-            } else {
-                let annihilate_fn_type = csearch::get_type(ccx.tcx,
-                                                           annihilate_def_id).ty;
-                trans_external_path(ccx, annihilate_def_id, annihilate_fn_type)
-            }
-        }
-        None => { C_null(Type::i8p()) }
-    };
-
     unsafe {
         let mod_map = create_module_map(ccx);
         llvm::LLVMSetInitializer(map, C_struct(
             [C_i32(1),
-             lib::llvm::llvm::LLVMConstPointerCast(llannihilatefn, Type::i8p().to_ref()),
+             // FIXME #8431 This used to be the annihilate function, now it's nothing
+             C_null(Type::i8p()),
              p2i(ccx, mod_map),
              C_array(ccx.int_type, subcrates)]));
     }
diff --git a/src/libstd/unstable/lang.rs b/src/libstd/unstable/lang.rs
index 91b4283ba12..e47a3c49f96 100644
--- a/src/libstd/unstable/lang.rs
+++ b/src/libstd/unstable/lang.rs
@@ -92,11 +92,6 @@ pub unsafe fn check_not_borrowed(a: *u8,
     borrowck::check_not_borrowed(a, file, line)
 }
 
-#[lang="annihilate"]
-pub unsafe fn annihilate() {
-    ::cleanup::annihilate()
-}
-
 #[lang="start"]
 pub fn start(main: *u8, argc: int, argv: **c_char,
              crate_map: *u8) -> int {