about summary refs log tree commit diff
path: root/src/comp/driver
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-08-10 22:12:42 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-08-10 22:13:30 -0700
commita5d5f9ef4871d5340f8a7820309ed6ea97648058 (patch)
treefe3ea7a97374e6b88820b2ce7ec558b7ec53e625 /src/comp/driver
parentc5c8258937f056a0f4b0e83e1d878c268daa09ff (diff)
downloadrust-a5d5f9ef4871d5340f8a7820309ed6ea97648058.tar.gz
rust-a5d5f9ef4871d5340f8a7820309ed6ea97648058.zip
rustc: Add a --gc switch for debugging and experimentation
Diffstat (limited to 'src/comp/driver')
-rw-r--r--src/comp/driver/rustc.rs7
-rw-r--r--src/comp/driver/session.rs3
2 files changed, 7 insertions, 3 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index 9b71fc25ceb..3b0cecb82ea 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -279,6 +279,7 @@ options:
     --no-typestate     don't run the typestate pass (unsafe!)
     --test             build test harness
     --dps              translate via destination-passing style (experimental)
+    --gc               garbage collect shared data (experimental/temporary)
 
 ");
 }
@@ -385,6 +386,7 @@ fn build_session_options(binary: str, match: getopts::match, binary_dir: str)
     let cfg = parse_cfgspecs(getopts::opt_strs(match, "cfg"));
     let test = opt_present(match, "test");
     let dps = opt_present(match, "dps");
+    let do_gc = opt_present(match, "gc");
     let sopts: @session::options =
         @{library: library,
           static: static,
@@ -403,7 +405,8 @@ fn build_session_options(binary: str, match: getopts::match, binary_dir: str)
           test: test,
           dps: dps,
           parse_only: parse_only,
-          no_trans: no_trans};
+          no_trans: no_trans,
+          do_gc: do_gc};
     ret sopts;
 }
 
@@ -435,7 +438,7 @@ fn opts() -> vec[getopts::opt] {
          optopt("sysroot"), optflag("stats"), optflag("time-passes"),
          optflag("time-llvm-passes"), optflag("no-typestate"),
          optflag("noverify"), optmulti("cfg"), optflag("test"),
-         optflag("lib"), optflag("static"), optflag("dps")];
+         optflag("lib"), optflag("static"), optflag("dps"), optflag("gc")];
 }
 
 fn main(args: vec[str]) {
diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs
index ebb9672374c..64de0033ce4 100644
--- a/src/comp/driver/session.rs
+++ b/src/comp/driver/session.rs
@@ -43,7 +43,8 @@ type options =
      test: bool,
      dps: bool,
      parse_only: bool,
-     no_trans: bool
+     no_trans: bool,
+     do_gc: bool
      };
 
 type crate_metadata = {name: str, data: [u8]};