Skip to content

ICE in process_file_path, at rust/ast/rust-ast.cc:3386 , path name attr == mod name #4145

@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

//@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use
struct S {
    field: [u8; {
        #[path = "outer/inner.rs"]
        mod inner;
        // OK
        0
    }],
}

original:

//@ proc-macro: issue-118809.rs

#[macro_use]
extern crate issue_118809;

#[derive(Empty)]
struct S {
    field: [u8; {
        #[path = "outer/inner.rs"]
        mod inner; //~ ERROR non-inline modules in proc macro input are unstable
        mod inner_inline {} // OK
        0
    }]
}

fn main() {}

Version information:

c742973

Possibly related line of code:

gccrs/gcc/rust/ast/rust-ast.cc

Lines 3380 to 3392 in c742973

}
void
Module::process_file_path ()
{
rust_assert (kind == Module::ModuleKind::UNLOADED);
rust_assert (module_file.empty ());
// This corresponds to the path of the file 'including' the module. So the
// file that contains the 'mod <file>;' directive
std::string including_fpath (outer_filename);
std::string expected_file_path = module_name.as_string () + ".rs";

Command:
/home/matthias/vcs/github/gccrs/gccrs-build/gcc/crab1 -frust-incomplete-and-experimental-compiler-do-not-use

Program output

/tmp/icemaker_global_tempdir.4jbydGKfmYZn/rustc_testrunner_tmpdir_reporting.jMr7LWNZjpn8/mvce.rs:4:9: error: cannot open module file ./outer/inner.rs: No such file or directory
    4 |         mod inner;
      |         ^~~
crab1: internal compiler error: in process_file_path, at rust/ast/rust-ast.cc:3386
0x300c7d8 internal_error(char const*, ...)
	../../gcc/diagnostic-global-context.cc:534
0xc23693 fancy_abort(char const*, int, char const*)
	../../gcc/diagnostics/context.cc:1640
0x9048e5 Rust::AST::Module::process_file_path()
	../../gcc/rust/ast/rust-ast.cc:3386
0xdea490 Rust::AST::Module::load_items()
	../../gcc/rust/ast/rust-ast.cc:3472
0xeaf627 Rust::CfgStrip::visit(Rust::AST::Module&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1777
0xeaf627 Rust::CfgStrip::visit(Rust::AST::Module&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1765
0xe4513f void Rust::AST::DefaultASTVisitor::visit<Rust::AST::Stmt>(std::unique_ptr<Rust::AST::Stmt, std::default_delete<Rust::AST::Stmt> >&)
	../../gcc/rust/ast/rust-ast-visitor.h:422
0xe4513f Rust::AST::DefaultASTVisitor::visit(Rust::AST::BlockExpr&)
	../../gcc/rust/ast/rust-ast-visitor.cc:458
0xeb1824 Rust::CfgStrip::visit(Rust::AST::BlockExpr&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1166
0xeb1824 Rust::CfgStrip::visit(Rust::AST::BlockExpr&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1145
0xeb511d Rust::CfgStrip::visit(Rust::AST::ArrayType&)
	../../gcc/rust/expand/rust-cfg-strip.cc:2662
0xe48925 void Rust::AST::DefaultASTVisitor::visit<Rust::AST::Type>(Rust::AST::Type&)
	../../gcc/rust/ast/rust-ast-visitor.h:418
0xe48925 Rust::AST::DefaultASTVisitor::visit(Rust::AST::StructField&)
	../../gcc/rust/ast/rust-ast-visitor.cc:915
0xe48925 Rust::AST::DefaultASTVisitor::visit(Rust::AST::StructStruct&)
	../../gcc/rust/ast/rust-ast-visitor.cc:928
0xeb340a Rust::CfgStrip::visit(Rust::AST::StructStruct&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1890
0xeb340a Rust::CfgStrip::visit(Rust::AST::StructStruct&)
	../../gcc/rust/expand/rust-cfg-strip.cc:1880
0xe4262f void Rust::AST::DefaultASTVisitor::visit<Rust::AST::Item>(std::unique_ptr<Rust::AST::Item, std::default_delete<Rust::AST::Item> >&)
	../../gcc/rust/ast/rust-ast-visitor.h:422
0xe4262f Rust::AST::DefaultASTVisitor::visit(Rust::AST::Crate&)
	../../gcc/rust/ast/rust-ast-visitor.cc:39
0xeafc39 Rust::CfgStrip::visit(Rust::AST::Crate&)
	../../gcc/rust/expand/rust-cfg-strip.cc:165
0xe7aed8 Rust::Session::expansion(Rust::AST::Crate&, Rust::Resolver2_0::NameResolutionContext&)
	../../gcc/rust/rust-session-manager.cc:943
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

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions