Skip to content

Commit

Permalink
auto merge of #10915 : alexcrichton/rust/fixes, r=ILyoan
Browse files Browse the repository at this point in the history
Just a little cleanup.
  • Loading branch information
bors committed Dec 18, 2013
2 parents f43402f + c11f290 commit 5cea7db
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 28 deletions.
10 changes: 1 addition & 9 deletions src/librustc/middle/entry.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

use driver::session;
use driver::session::Session;
use syntax::abi;
use syntax::ast::{Crate, NodeId, item, item_fn};
use syntax::ast_map;
use syntax::attr;
Expand Down Expand Up @@ -46,10 +45,7 @@ impl Visitor<()> for EntryContext {
}

pub fn find_entry_point(session: Session, crate: &Crate, ast_map: ast_map::map) {

// FIXME #4404 android JNI hacks
if *session.building_library &&
session.targ_cfg.os != abi::OsAndroid {
if *session.building_library {
// No need to find a main function
return;
}
Expand Down Expand Up @@ -149,10 +145,6 @@ fn configure_main(this: &mut EntryContext) {
}
}
this.session.abort_if_errors();
} else {
// If we *are* building a library, then we're on android where we still might
// optionally want to translate main $4404
assert_eq!(this.session.targ_cfg.os, abi::OsAndroid);
}
}
}
27 changes: 8 additions & 19 deletions src/librustc/middle/trans/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ use syntax::parse::token::{special_idents};
use syntax::print::pprust::stmt_to_str;
use syntax::{ast, ast_util, codemap, ast_map};
use syntax::attr::AttrMetaMethods;
use syntax::abi::{X86, X86_64, Arm, Mips, Rust, RustIntrinsic, OsWin32, OsAndroid};
use syntax::abi::{X86, X86_64, Arm, Mips, Rust, RustIntrinsic, OsWin32};
use syntax::visit;
use syntax::visit::Visitor;

Expand Down Expand Up @@ -2289,11 +2289,7 @@ fn finish_register_fn(ccx: @mut CrateContext, sp: Span, sym: ~str, node_id: ast:
lib::llvm::SetLinkage(llfn, lib::llvm::InternalLinkage);
}

// FIXME #4404 android JNI hacks
let is_entry = is_entry_fn(&ccx.sess, node_id) && (!*ccx.sess.building_library ||
(*ccx.sess.building_library &&
ccx.sess.targ_cfg.os == OsAndroid));
if is_entry {
if is_entry_fn(&ccx.sess, node_id) && !*ccx.sess.building_library {
create_entry_wrapper(ccx, sp, llfn);
}
}
Expand Down Expand Up @@ -2361,13 +2357,7 @@ pub fn create_entry_wrapper(ccx: @mut CrateContext,
let llfty = Type::func([ccx.int_type, Type::i8().ptr_to().ptr_to()],
&ccx.int_type);

// FIXME #4404 android JNI hacks
let main_name = if *ccx.sess.building_library {
"amain"
} else {
"main"
};
let llfn = decl_cdecl_fn(ccx.llmod, main_name, llfty);
let llfn = decl_cdecl_fn(ccx.llmod, "main", llfty);
let llbb = "top".with_c_str(|buf| {
unsafe {
llvm::LLVMAppendBasicBlockInContext(ccx.llcx, llfn, buf)
Expand Down Expand Up @@ -3199,14 +3189,13 @@ pub fn trans_crate(sess: session::Session,
}).to_owned_vec();

// Make sure that some other crucial symbols are not eliminated from the
// module. This includes the main function (main/amain elsewhere), the crate
// map (used for debug log settings and I/O), and finally the curious
// rust_stack_exhausted symbol. This symbol is required for use by the
// libmorestack library that we link in, so we must ensure that this symbol
// is not internalized (if defined in the crate).
// module. This includes the main function, the crate map (used for debug
// log settings and I/O), and finally the curious rust_stack_exhausted
// symbol. This symbol is required for use by the libmorestack library that
// we link in, so we must ensure that this symbol is not internalized (if
// defined in the crate).
reachable.push(ccx.crate_map_name.to_owned());
reachable.push(~"main");
reachable.push(~"amain");
reachable.push(~"rust_stack_exhausted");

return CrateTranslation {
Expand Down
5 changes: 5 additions & 0 deletions src/libsyntax/parse/obsolete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ pub enum ObsoleteSyntax {
ObsoleteVecDotDotWildcard,
ObsoleteBoxedClosure,
ObsoleteClosureType,
ObsoleteMultipleImport,
}

impl to_bytes::IterBytes for ObsoleteSyntax {
Expand Down Expand Up @@ -140,6 +141,10 @@ impl ParserObsoleteMethods for Parser {
"closures are now written `|A| -> B` rather than `&fn(A) -> \
B`."
),
ObsoleteMultipleImport => (
"multiple imports",
"only one import is allowed per `use` statement"
),
};

self.report(sp, kind, kind_str, desc);
Expand Down
1 change: 1 addition & 0 deletions src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4968,6 +4968,7 @@ impl Parser {
let mut vp = ~[self.parse_view_path()];
while *self.token == token::COMMA {
self.bump();
self.obsolete(*self.last_span, ObsoleteMultipleImport);
vp.push(self.parse_view_path());
}
return vp;
Expand Down

0 comments on commit 5cea7db

Please sign in to comment.