https://gcc.gnu.org/g:369b51527a10c503812695586418bd14b32f6fa5

commit 369b51527a10c503812695586418bd14b32f6fa5
Author: badumbatish <tanghocle...@gmail.com>
Date:   Sun Aug 4 12:43:09 2024 -0700

    Add running cicd 32bit
    
    ChangeLog:
    
            * .github/alpine_32bit_log_warnings: New file.
            * .github/workflows/ccpp32alpine.yml: New file.
    
    gcc/rust/ChangeLog:
    
            * resolve/rust-ast-resolve.cc (NameResolution::go):
            Fix warnings from const auto& to const auto

Diff:
---
 .github/alpine_32bit_log_warnings    | 101 +++++++++++++++++++++++++++
 .github/workflows/ccpp32alpine.yml   | 129 +++++++++++++++++++++++++++++++++++
 gcc/rust/resolve/rust-ast-resolve.cc |   5 +-
 3 files changed, 234 insertions(+), 1 deletion(-)

diff --git a/.github/alpine_32bit_log_warnings 
b/.github/alpine_32bit_log_warnings
new file mode 100644
index 000000000000..a10e98f40899
--- /dev/null
+++ b/.github/alpine_32bit_log_warnings
@@ -0,0 +1,101 @@
+../../../libgcc/soft-fp/fixdfbitint.c:51:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixdfbitint.c:51:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixdfbitint.c:57:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixdfbitint.c:57:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixdfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixdfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:51:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:51:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:57:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:57:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixsfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:61:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:67:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:67:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:71:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixtfbitint.c:71:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:62:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:62:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:68:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:68:22: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:72:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/fixxfbitint.c:72:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1477:20: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1492:26: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1515:24: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1560:39: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../../libgcc/soft-fp/op-common.h:1563:25: warning: comparison of integer 
expressions of different signedness: ‘int’ and ‘USItype’ {aka ‘unsigned int’} 
[-Wsign-compare]
+../../gcc/analyzer/store.h:310:5: warning: 
'size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> 
>::<anonymous>.fixed_wide_int_storage<128>::val[1]' may be used uninitialized 
[-Wmaybe-uninitialized]
+../../gcc/expmed.cc:1845:45: warning: '*(unsigned int*)((char*)&imode + 
offsetof(scalar_int_mode, scalar_int_mode::m_mode))' may be used uninitialized 
[-Wmaybe-uninitialized]
+../../gcc/gcc.cc:2412:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2413:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2432:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2433:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2458:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2459:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2467:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2468:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2477:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2478:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2487:30: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2488:32: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2527:26: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2527:59: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2539:22: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2539:51: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/gcc.cc:2553:22: warning: too many arguments for format 
[-Wformat-extra-args]
+../../gcc/gcc.cc:2553:51: warning: unknown conversion type character 't' in 
format [-Wformat=]
+../../gcc/text-art/style.cc:150:25: warning: spurious leading punctuation 
sequence ';' in format [-Wformat-diag]
+../../gcc/text-art/style.cc:160:25: warning: spurious leading punctuation 
sequence ';' in format [-Wformat-diag]
+../../gcc/text-art/table.cc:981:62: warning: unquoted keyword 'char' in format 
[-Wformat-diag]
+../../gcc/text-art/table.cc:981:69: warning: spurious trailing punctuation 
sequence '])' in format [-Wformat-diag]
+/usr/include/c++/13.2.1/bits/new_allocator.h:172:33: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_start' may be used uninit
 ialized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&resolved + 
offsetof(tl::optional<Rust::Resolver2_0::Rib::Definition>,tl::optional<Rust::Resolver2_0::Rib::Definition>::<unnamed>.tl::detail::optional_move_assign_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_move_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::Resolver2_0::Rib::Definition>::<unnamed>.tl::detail::optional_storage_base<Rust::Resolver2_0::Rib::Definition,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, std::alloca
 tor<unsigned int> >::_Vector_impl_data::_M_end_of_storage' may be used 
uninitialized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_end_of_storage' may be 
used 
 uninitialized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_end_of_storage' may be 
used 
 uninitialized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_end_of_storage' may be 
used 
 uninitialized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_start' may be used 
uninitial
 ized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:367:49: warning: 
'*(std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>*)((char*)&saved + offsetof(Rust::BIR::PatternBindingBuilder::SavedState, 
Rust::BIR::PatternBindingBuilder::SavedState::regions.tl::optional<Rust::FreeRegions>::<unnamed>.tl::detail::optional_move_assign_base<Rust::FreeRegions,
 false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_move_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::FreeRegions, 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::FreeRegions>::<unnamed>.tl::detail::optional_storage_base<Rust::FreeRegions,
 false>::<unnamed>)).std::_Vector_base<unsigned int, std::allocator<unsigned 
int> >::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::_Vector_base<unsigned int, 
std::allocator<unsigned int> >::_Vector_impl_data::_M_start' may be used 
uninitial
 ized [-Wmaybe-uninitialized]
+/usr/include/c++/13.2.1/bits/stl_vector.h:386:9: warning: '*(const 
std::vector<unsigned int, std::allocator<unsigned int> >*)((char*)&resolved + 
offsetof(tl::optional<Rust::Resolver2_0::Rib::Definition>,tl::optional<Rust::Resolver2_0::Rib::Definition>::<unnamed>.tl::detail::optional_move_assign_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_copy_assign_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_move_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_copy_base<Rust::Resolver2_0::Rib::Definition,
 
false>::<unnamed>.tl::detail::optional_operations_base<Rust::Resolver2_0::Rib::Definition>::<unnamed>.tl::detail::optional_storage_base<Rust::Resolver2_0::Rib::Definition,
 false>::<unnamed>)).std::vector<unsigned 
int>::<anonymous>.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_M_impl.std::_Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl::<anonymous>.std::
 _Vector_base<unsigned int, std::allocator<unsigned int> 
>::_Vector_impl_data::_M_start' may be used uninitialized 
[-Wmaybe-uninitialized]
+gengtype-lex.cc:356:15: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
+gengtype-lex.cc:356:15: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
+gengtype-lex.cc:356:15: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
+gengtype-lex.cc:356:15: warning: this statement may fall through 
[-Wimplicit-fallthrough=]
+libtool: install: warning: remember to run `libtool --finish 
/usr/local/libexec/gcc/i586-alpine-linux-musl/14.0.1'
diff --git a/.github/workflows/ccpp32alpine.yml 
b/.github/workflows/ccpp32alpine.yml
new file mode 100644
index 000000000000..82901ea3c146
--- /dev/null
+++ b/.github/workflows/ccpp32alpine.yml
@@ -0,0 +1,129 @@
+name: GCC Rust build and test (Alpine 32-bit)
+
+on:
+  push:
+    branches:
+      - trying
+      - staging
+  pull_request:
+    branches: [ master ]
+  merge_group:
+
+env:
+  ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
+
+jobs:
+  build-alpine-32bit-and-check-alpine-32bit:
+
+    env:
+      # Force locale, in particular for reproducible results re 
'.github/bors_log_expected_warnings' (see below).
+      LC_ALL: C.UTF-8
+
+    runs-on: ubuntu-22.04
+
+    steps:
+    - uses: actions/checkout@v3
+    - name: Setup Alpine Linux (32-bit)
+      uses: jirutka/setup-alpine@v1
+      with:
+        arch: x86
+        packages: >
+          automake
+          autoconf
+          libtool
+          bison
+          flex
+          gmp-dev
+          mpfr-dev
+          mpc1-dev
+          build-base
+          dejagnu
+          curl
+          gcompat
+          libc6-compat
+          libc-dev
+          libc++-dev
+          cargo
+
+    # - name: Install gcc dependency    
+    #   run: |
+    #     sudo apt install gcc-multilib g++-multilib libc6-dev-i386
+    # - name: Install Rust
+    #   run: |
+    #     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- 
-y --default-toolchain=1.72.0 
+    #   shell: alpine.sh {0}
+
+    - name: Install dependencies with gcc
+      run: |
+         ./contrib/download_prerequisites
+      shell: alpine.sh {0}
+
+    - name: Configure
+      run: |
+           mkdir -p gccrs-build;
+           cd gccrs-build;
+           ../configure \
+               --host=i586-alpine-linux-musl --build=i586-alpine-linux-musl 
--target=i586-alpine-linux-musl \
+               --enable-languages=rust \
+               --disable-bootstrap \
+               --disable-multilib # Try to disable multilib on alpine 
https://github.com/conan-io/conan/issues/14307#issuecomment-1652433132
+      shell: alpine.sh {0}
+
+    - name: Build
+      run: |
+           cd gccrs-build; \
+           # Add cargo to our path quickly
+           # . "$HOME/.cargo/env";
+           make -Otarget -j $(nproc) 2>&1 | tee log
+      shell: alpine.sh {0}     
+
+    - name: Produce warning logs
+      run: |
+           cd gccrs-build
+           < log grep 'warning: ' | sort > log_warnings
+           cat log_warnings
+      shell: alpine.sh {0}
+    - name: Archive warnings logs
+      uses: actions/upload-artifact@v3
+      with:
+        name: warnings 
+        path: |
+          gccrs-build/log_warnings
+    - name: Check for new warnings
+      run: |
+           cd gccrs-build
+           < log grep 'warning: ' | sort > log_warnings
+           if diff -U0 ../.github/alpine_32bit_log_warnings log_warnings; then
+               :
+           else
+               echo 'See <https://github.com/Rust-GCC/gccrs/pull/1026>.'
+               exit 1
+           fi >&2
+      shell: alpine.sh {0}
+
+    - name: Run Tests
+      run: |
+           cd gccrs-build; \
+           make check-rust RUNTESTFLAGS="--target_board=unix\{-m32}"
+      shell: alpine.sh {0}
+
+    - name: Archive check-rust results
+      uses: actions/upload-artifact@v3
+      with:
+        name: check-rust-logs
+        path: |
+          gccrs-build/gcc/testsuite/rust/
+
+    - name: Check regressions
+      run: |
+           cd gccrs-build; \
+           if grep -e "unexpected" -e "unresolved" -e "ERROR:" 
gcc/testsuite/rust/rust.sum;\
+           then \
+              echo "::error title=Regression test failed::some tests are not 
correct"; \
+              perl -n ../.github/emit_test_errors.pl < 
gcc/testsuite/rust/rust.sum; \
+              exit 1; \
+            else \
+              exit 0; \
+            fi
+      shell: alpine.sh {0}
+
diff --git a/gcc/rust/resolve/rust-ast-resolve.cc 
b/gcc/rust/resolve/rust-ast-resolve.cc
index 5dab77265b4d..df90cff7815c 100644
--- a/gcc/rust/resolve/rust-ast-resolve.cc
+++ b/gcc/rust/resolve/rust-ast-resolve.cc
@@ -63,7 +63,10 @@ NameResolution::go (AST::Crate &crate)
 {
   // lookup current crate name
   CrateNum cnum = mappings.get_current_crate ();
-  const auto &crate_name = mappings.get_crate_name (cnum).value ();
+
+  // Clones the crate name instead of references due to gcc's possibly
+  // dangling references warnings
+  const auto crate_name = mappings.get_crate_name (cnum).value ();
 
   // setup the ribs
   NodeId scope_node_id = crate.get_node_id ();

Reply via email to