]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix modules with same name as builtins causing ICE (#3315)
authorLiam Naddell <liamnprg@gmail.com>
Tue, 11 Feb 2025 21:42:41 +0000 (16:42 -0500)
committerP-E-P <32375388+P-E-P@users.noreply.github.com>
Tue, 18 Mar 2025 13:39:52 +0000 (13:39 +0000)
commit199b540046fa211d836b3f2246fd9973b4b14067
tree16c47be30f24df8ff896abc478cc53f0ee86e2b8
parent6a4363f83a8454e7f33baa4bf11101cc5ada36ad
Fix modules with same name as builtins causing ICE (#3315)

gcc/rust/ChangeLog:

* resolve/rust-forever-stack.h (ForeverStack): Add a dedicated prelude node for
the Language prelude
* resolve/rust-forever-stack.hxx (ForeverStack): Add support code for the
prelude node
* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Move
language prelude builtins to the prelude context
* resolve/rust-name-resolution-context.cc
(NameResolutionContext::scoped): Add code for handling
the prelude corner case
* resolve/rust-rib.h (Rib::Kind): Add a special Prelude rib type

gcc/testsuite/ChangeLog:

* rust/compile/issue-3315-1.rs: Add test for module with same name
as builtin
* rust/compile/issue-3315-2.rs: Test with utilization of i32
type
* rust/compile/nr2/exclude: issue-3315-2.rs Does not work with
NR2.0

Signed-off-by: Liam Naddell <liamnprg@gmail.com>
gcc/rust/resolve/rust-forever-stack.h
gcc/rust/resolve/rust-forever-stack.hxx
gcc/rust/resolve/rust-late-name-resolver-2.0.cc
gcc/rust/resolve/rust-name-resolution-context.cc
gcc/rust/resolve/rust-rib.h
gcc/testsuite/rust/compile/issue-3315-1.rs [new file with mode: 0644]
gcc/testsuite/rust/compile/issue-3315-2.rs [new file with mode: 0644]
gcc/testsuite/rust/compile/nr2/exclude