Skip to content

ICE: segfault TokenCollector #3617

@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

macro_rules! quote_tokens {
    () => {
        #[macro_export]
        macro_rules! inner {
                    () => {
                        $crate::
                    }
                }
    };
}

pub fn main() {
    quote_tokens!();
}

original:

macro_rules! quote_tokens { () => {
        #[macro_export]
        macro_rules! inner {
            () => {
                $crate::IN_DEF_CRATE
            }
        }
    } }

pub fn main() {
    quote_tokens!();
}

Version information:

4019d70

Command:
crab1 -Warray-bounds -mtune=generic -march=x86-64 -O0 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -frust-incomplete-and-experimental-compiler-do-not-use

Program output

crab1: internal compiler error: Segmentation fault
0x1702eaf crash_signal
	../../gcc/toplev.cc:319
0xc04e8c Rust::AST::TokenCollector::visit(Rust::AST::Item&)
	../../gcc/rust/ast/rust-ast-collector.cc:63
0xc03ad4 void Rust::AST::Dump::process<Rust::AST::Item>(Rust::AST::Item&)
	../../gcc/rust/ast/rust-ast-dump.h:45
0x1025e7c Rust::Metadata::ExportContext::emit_macro(unsigned int)
	../../gcc/rust/metadata/rust-export-metadata.cc:121
0x102614d Rust::Metadata::PublicInterface::gather_export_data()
	../../gcc/rust/metadata/rust-export-metadata.cc:199
0x10266bb Rust::Metadata::PublicInterface::ExportTo(Rust::HIR::Crate&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
	../../gcc/rust/metadata/rust-export-metadata.cc:179
0xc5c6dd Rust::Session::compile_crate(char const*)
	../../gcc/rust/rust-session-manager.cc:748
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions