aboutsummaryrefslogtreecommitdiff
path: root/src/comp/driver/session.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/driver/session.rs')
-rw-r--r--src/comp/driver/session.rs31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs
index 831c6439..e23dbeed 100644
--- a/src/comp/driver/session.rs
+++ b/src/comp/driver/session.rs
@@ -1,7 +1,31 @@
import util.common.span;
+import util.common.ty_mach;
import std._uint;
-obj session() {
+tag os {
+ os_win32;
+ os_macos;
+ os_linux;
+}
+
+tag arch {
+ arch_x86;
+ arch_x64;
+ arch_arm;
+}
+
+type cfg = rec(os os,
+ arch arch,
+ ty_mach int_type,
+ ty_mach uint_type,
+ ty_mach float_type);
+
+obj session(cfg targ) {
+
+ fn get_targ_cfg() -> cfg {
+ ret targ;
+ }
+
fn span_err(span sp, str msg) {
log #fmt("%s:%u:%u:%u:%u: error: %s",
sp.filename,
@@ -16,6 +40,11 @@ obj session() {
fail;
}
+ fn bug(str msg) {
+ log #fmt("error: internal compiler error %s", msg);
+ fail;
+ }
+
fn unimpl(str msg) {
log #fmt("error: unimplemented %s", msg);
fail;