Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A few small issue fixes #10915

Merged
merged 2 commits into from
Dec 18, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@ -85,7 +85,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 @@ -2268,11 +2268,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 @@ -2340,13 +2336,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 @@ -3178,14 +3168,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 @@ -4923,6 +4923,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