about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2015-04-08 12:52:58 -0700
committerKeegan McAllister <kmcallister@mozilla.com>2015-04-08 14:01:59 -0700
commit0cb937944664f7a52895c87f9007fcdface78a7e (patch)
treee2f903e1ea74da556af4616e19f0218436fa762e /src/test
parent30e7e6e8b0389d407f8b46ab605a9e3475a851d5 (diff)
downloadrust-0cb937944664f7a52895c87f9007fcdface78a7e.tar.gz
rust-0cb937944664f7a52895c87f9007fcdface78a7e.zip
Allow plugins to register LLVM passes
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/llvm_pass_plugin.rs28
-rw-r--r--src/test/run-pass-fulldeps/llvm-pass-plugin.rs17
2 files changed, 45 insertions, 0 deletions
diff --git a/src/test/auxiliary/llvm_pass_plugin.rs b/src/test/auxiliary/llvm_pass_plugin.rs
new file mode 100644
index 00000000000..d61f47fd7ef
--- /dev/null
+++ b/src/test/auxiliary/llvm_pass_plugin.rs
@@ -0,0 +1,28 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// force-host
+
+#![feature(plugin_registrar)]
+#![feature(rustc_private)]
+
+extern crate rustc;
+
+use rustc::plugin::Registry;
+
+#[plugin_registrar]
+pub fn plugin_registrar(reg: &mut Registry) {
+    // This pass is built in to LLVM.
+    //
+    // Normally, we would name a pass that was registered through
+    // C++ static object constructors in the same .so file as the
+    // plugin registrar.
+    reg.register_llvm_pass("inline");
+}
diff --git a/src/test/run-pass-fulldeps/llvm-pass-plugin.rs b/src/test/run-pass-fulldeps/llvm-pass-plugin.rs
new file mode 100644
index 00000000000..5dfef636f9f
--- /dev/null
+++ b/src/test/run-pass-fulldeps/llvm-pass-plugin.rs
@@ -0,0 +1,17 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// aux-build:llvm_pass_plugin.rs
+// ignore-stage1
+
+#![feature(plugin)]
+#![plugin(llvm_pass_plugin)]
+
+pub fn main() { }