aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-name-resolution-context.cc
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2025-03-12 17:03:25 +0000
committerPhilip Herron <philip.herron@embecosm.com>2025-03-14 19:11:22 +0000
commit9d88bcce6da404acee0363d7d417b199aca011c5 (patch)
tree4bbfdc474170fe2e22c52d46d8b57158f8ba4a9a /gcc/rust/resolve/rust-name-resolution-context.cc
parentaa88863a0f370235931f5d948ed5019fdc9254a9 (diff)
downloadgcc-9d88bcce6da404acee0363d7d417b199aca011c5.zip
gcc-9d88bcce6da404acee0363d7d417b199aca011c5.tar.gz
gcc-9d88bcce6da404acee0363d7d417b199aca011c5.tar.bz2
gccrs: check for recursion trait cycle with bounds checks
We need to be careful when doing bounds check as to not create a recusive trait resolution. This patch checks for that case and fixes a bad type is equal check on ADT Types which was caught with a regression here. Fixes Rust-GCC#3126 gcc/rust/ChangeLog: * typecheck/rust-hir-trait-resolve.cc (TraitResolver::ResolveHirItem): new helper * typecheck/rust-hir-trait-resolve.h: add helper prototype * typecheck/rust-type-util.cc (query_type): add debug * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): check for recursion * typecheck/rust-tyty.cc (VariantDef::is_equal): fix is equal check gcc/testsuite/ChangeLog: * rust/execute/torture/issue-3126.rs: New test. Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'gcc/rust/resolve/rust-name-resolution-context.cc')
0 files changed, 0 insertions, 0 deletions