aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-07-05 14:38:02 -0700
committerGraydon Hoare <[email protected]>2010-07-05 14:38:02 -0700
commitb0aba6510a7b571560cb6d02b980350faf028d5c (patch)
treef677a270495b662e9cb61c6241699dd58e0d253d
parentRename some stuff in lib/util.rs. (diff)
downloadrust-b0aba6510a7b571560cb6d02b980350faf028d5c.tar.xz
rust-b0aba6510a7b571560cb6d02b980350faf028d5c.zip
Teach the dwarf readers to handle udata, so we can link with util.option; add util.rs to std.rc.
-rw-r--r--src/boot/me/dwarf.ml1
-rw-r--r--src/lib/std.rc4
-rw-r--r--src/rt/rust_crate_reader.cpp5
3 files changed, 10 insertions, 0 deletions
diff --git a/src/boot/me/dwarf.ml b/src/boot/me/dwarf.ml
index a568db41..bf974866 100644
--- a/src/boot/me/dwarf.ml
+++ b/src/boot/me/dwarf.ml
@@ -2724,6 +2724,7 @@ let read_dies
| DW_FORM_data1 -> DATA_num (ar.asm_get_u8())
| DW_FORM_data4 -> DATA_num (ar.asm_get_u32())
| DW_FORM_flag -> DATA_num (ar.asm_get_u8())
+ | DW_FORM_udata -> DATA_num (ar.asm_get_uleb())
| DW_FORM_block1 -> (adv_block1(); DATA_other)
| DW_FORM_block4 -> (adv_block4(); DATA_other)
| _ ->
diff --git a/src/lib/std.rc b/src/lib/std.rc
index 3ddfc04c..80d21fb0 100644
--- a/src/lib/std.rc
+++ b/src/lib/std.rc
@@ -16,6 +16,10 @@ mod _str;
mod _io;
mod sys;
+// Utility modules.
+
+mod util;
+
// Authorize various rule-bendings.
auth _io = unsafe;
diff --git a/src/rt/rust_crate_reader.cpp b/src/rt/rust_crate_reader.cpp
index b9b4497c..03d64b4b 100644
--- a/src/rt/rust_crate_reader.cpp
+++ b/src/rt/rust_crate_reader.cpp
@@ -347,6 +347,11 @@ rust_crate_reader::die::step_attr(attr &a) const
return rdr->is_ok() || rdr->at_end();
break;
+ case DW_FORM_udata:
+ rdr->get_uleb(u32);
+ return rdr->is_ok() || rdr->at_end();
+ break;
+
default:
rdr->mem.dom->log(rust_log::DWARF, " unknown dwarf form: 0x%"
PRIxPTR, a.form);