summaryrefslogtreecommitdiff
path: root/src/librustc_codegen_utils/lib.rs
diff options
context:
space:
mode:
authorIrina Popa <irinagpopa@gmail.com>2018-05-08 16:10:16 +0300
committerIrina Popa <irinagpopa@gmail.com>2018-05-17 15:08:30 +0300
commitb63d7e2b1c4019e40051036bcb1fd5f254a8f6e2 (patch)
tree314792e2f467d17181d29d4988550058197ac029 /src/librustc_codegen_utils/lib.rs
parente3150564f889a3bad01795d9fcb31d4f14d58a99 (diff)
downloadrust-b63d7e2b1c4019e40051036bcb1fd5f254a8f6e2.tar.gz
Rename trans to codegen everywhere.
Diffstat (limited to 'src/librustc_codegen_utils/lib.rs')
-rw-r--r--src/librustc_codegen_utils/lib.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/librustc_codegen_utils/lib.rs b/src/librustc_codegen_utils/lib.rs
new file mode 100644
index 00000000000..0c18571f4ff
--- /dev/null
+++ b/src/librustc_codegen_utils/lib.rs
@@ -0,0 +1,63 @@
+// Copyright 2017 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.
+
+//! # Note
+//!
+//! This API is completely unstable and subject to change.
+
+#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
+ html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
+ html_root_url = "https://doc.rust-lang.org/nightly/")]
+
+#![feature(box_patterns)]
+#![feature(box_syntax)]
+#![feature(custom_attribute)]
+#![allow(unused_attributes)]
+#![feature(quote)]
+#![feature(rustc_diagnostic_macros)]
+
+extern crate ar;
+extern crate flate2;
+#[macro_use]
+extern crate log;
+
+#[macro_use]
+extern crate rustc;
+extern crate rustc_target;
+extern crate rustc_mir;
+extern crate rustc_incremental;
+extern crate syntax;
+extern crate syntax_pos;
+#[macro_use] extern crate rustc_data_structures;
+
+pub extern crate rustc as __rustc;
+
+use rustc::ty::TyCtxt;
+
+pub mod link;
+pub mod codegen_backend;
+pub mod symbol_names;
+pub mod symbol_names_test;
+
+/// check for the #[rustc_error] annotation, which forces an
+/// error in codegen. This is used to write compile-fail tests
+/// that actually test that compilation succeeds without
+/// reporting an error.
+pub fn check_for_rustc_errors_attr(tcx: TyCtxt) {
+ if let Some((id, span, _)) = *tcx.sess.entry_fn.borrow() {
+ let main_def_id = tcx.hir.local_def_id(id);
+
+ if tcx.has_attr(main_def_id, "rustc_error") {
+ tcx.sess.span_fatal(span, "compilation successful");
+ }
+ }
+}
+
+__build_diagnostic_array! { librustc_codegen_utils, DIAGNOSTICS }