diff options
| author | Graydon Hoare <[email protected]> | 2010-07-05 14:38:02 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-07-05 14:38:02 -0700 |
| commit | b0aba6510a7b571560cb6d02b980350faf028d5c (patch) | |
| tree | f677a270495b662e9cb61c6241699dd58e0d253d /src | |
| parent | Rename some stuff in lib/util.rs. (diff) | |
| download | rust-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/boot/me/dwarf.ml | 1 | ||||
| -rw-r--r-- | src/lib/std.rc | 4 | ||||
| -rw-r--r-- | src/rt/rust_crate_reader.cpp | 5 |
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); |