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

ICE: encode_symbol: id not found #8134

Closed
Florob opened this issue Jul 30, 2013 · 1 comment
Closed

ICE: encode_symbol: id not found #8134

Florob opened this issue Jul 30, 2013 · 1 comment
Labels
A-metadata Area: Crate metadata

Comments

@Florob
Copy link
Contributor

Florob commented Jul 30, 2013

The below code snippet generates an internal compiler error, apparently related to the static vector declared inside the function.

#[link(name = "xml", vers = "0.1")];
#[ crate_type = "lib" ];
pub struct Parser<T>;
impl<T: std::iterator::Iterator<char>> Parser<T> {
    fn in_doctype(&mut self) {
        static DOCTYPEPattern: [char, ..6] = ['O', 'C', 'T', 'Y', 'P', 'E'];
    }
}
florian@Zefla:(~/devel/RustyXML)% RUST_LOG=::rt::backtrace,rustc=4 ~/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/rustc xml.rs
error: internal compiler error: encode_symbol: id not found 25
rust: task failed at 'explicit failure', /home/florian/devel/rust/src/libsyntax/diagnostic.rs:96
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7fa21ca39bdb]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(+0x2aed1)[0x7fa21ca4aed1]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(upcall_fail+0x198)[0x7fa21ca3bb88]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(_ZN3sys13begin_unwind_16_89e154cd091567114_0$x2e8$x2dpreE+0x565)[0x7fa21e5469e5]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x113b22)[0x7fa21e546b22]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x1132f8)[0x7fa21e5462f8]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x113ad1)[0x7fa21e546ad1]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x1132f8)[0x7fa21e5462f8]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x8b53c)[0x7fa21e4be53c]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libsyntax-64629f7f0c6a9bc-0.8-pre.so(_ZN10diagnostic14__extensions__10meth_102555fatal17_e0de3d9f29108f6414_0$x2e8$x2dpreE+0x104)[0x7fa21d9a4934]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libsyntax-64629f7f0c6a9bc-0.8-pre.so(_ZN10diagnostic14__extensions__10meth_103063bug17_e0de3d9f29108f6414_0$x2e8$x2dpreE+0xbb)[0x7fa21d9a531b]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN8metadata7encoder13encode_symbol17_144eafc1dc2f65f414_0$x2e8$x2dpreE+0x1ab)[0x7fa21d3ffd8b]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN8metadata7encoder20encode_info_for_item16_60ccbc76a69f4ec14_0$x2e8$x2dpreE+0x2a36)[0x7fa21d406f26]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x79bf4f)[0x7fa21d40af4f]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x354eff)[0x7fa21cfc3eff]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x353d66)[0x7fa21cfc2d66]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x35386c)[0x7fa21cfc286c]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x3536dc)[0x7fa21cfc26dc]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x3573eb)[0x7fa21cfc63eb]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x357275)[0x7fa21cfc6275]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x35322e)[0x7fa21cfc222e]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x352954)[0x7fa21cfc1954]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x79bdd1)[0x7fa21d40add1]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x3514c4)[0x7fa21cfc04c4]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x351303)[0x7fa21cfc0303]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x2485c4)[0x7fa21ceb75c4]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN8metadata7encoder21encode_info_for_items17_8ebdc4748ca1bd6714_0$x2e8$x2dpreE+0x830)[0x7fa21d40a7e0]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN8metadata7encoder15encode_metadata16_67732708321fab814_0$x2e8$x2dpreE+0x531)[0x7fa21cebe491]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN6middle5trans4base14write_metadata17_94b1fb3f7511afa514_0$x2e8$x2dpreE+0xd4)[0x7fa21cebd994]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN6middle5trans4base11trans_crate17_ba8b614b35649cda14_0$x2e8$x2dpreE+0x768)[0x7fa21cec0458]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN6driver6driver25phase_4_translate_to_llvm17_94f11f609d9d126e14_0$x2e8$x2dpreE+0x259)[0x7fa21d435b89]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN6driver6driver13compile_input16_78422556434e91814_0$x2e8$x2dpreE+0x248)[0x7fa21d436528]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN12run_compiler16_1d173a51bebac4f14_0$x2e8$x2dpreE+0x18ec)[0x7fa21d45a3ac]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x80a6de)[0x7fa21d4796de]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x8063a4)[0x7fa21d4753a4]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(+0x7ffa42)[0x7fa21d46ea42]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0xeb24f)[0x7fa21e51e24f]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x22)[0x7fa21ca3a512]
rust: task failed at 'explicit failure', /home/florian/devel/rust/src/librustc/rustc.rs:358
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7fa21ca39bdb]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(+0x2aed1)[0x7fa21ca4aed1]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(upcall_fail+0x198)[0x7fa21ca3bb88]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(_ZN3sys13begin_unwind_16_89e154cd091567114_0$x2e8$x2dpreE+0x565)[0x7fa21e5469e5]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x113b22)[0x7fa21e546b22]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x1132f8)[0x7fa21e5462f8]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x113ad1)[0x7fa21e546ad1]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x1132f8)[0x7fa21e5462f8]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/libstd-6c65cf4b443341b1-0.8-pre.so(+0x8b53c)[0x7fa21e4be53c]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN7monitor15_b1f25455d872e014_0$x2e8$x2dpreE+0x2f85)[0x7fa21d45dec5]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustc-d3cb8c2ccd84a7a7-0.8-pre.so(_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE+0x69)[0x7fa21d479619]
/home/florian/devel/rust/x86_64-unknown-linux-gnu/stage2/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x22)[0x7fa21ca3a512]
rust: domain main @0x243fcd0 root task failed
@huonw
Copy link
Member

huonw commented Aug 29, 2013

Still reproduces:

struct Foo;
impl<T> Foo {
    pub fn foo(&self) {
        static X: uint = 1;
    }
}
$ rustc 8134.rs
warning: missing crate link meta `name`, using `8134` as default
warning: missing crate link meta `vers`, using `0.0` as default
error: internal compiler error: encode_symbol: id not found 11

It appears to be an interaction with the generic; removing the <T> makes it compile fine.

bors added a commit that referenced this issue Aug 30, 2013
Whenever a generic function was encountered, only the top-level items were
recursed upon, even though the function could contain items inside blocks or
nested inside of other expressions. This fixes the existing code from traversing
just the top level items to using a Visitor to deeply recurse and find any items
which need to be translated.

This was uncovered when building code with --lib, because the encode_symbol
function would panic once it found that an item hadn't been translated.

Closes #8134
flip1995 pushed a commit to flip1995/rust that referenced this issue Dec 17, 2021
Rustup

r? `@ghost`

changelog: none
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-metadata Area: Crate metadata
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants