[Bug rust/108087] -Wodr warnings in rust/rust-lang.cc (lang_type)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108087 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW CC||marxin at gcc dot gnu.org Last reconfirmed||2022-12-14 Ever confirmed|0 |1 --- Comment #3 from Martin Liška --- Yes, I think it's a real issue. -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108124] New: UBSAN issues when tests are run
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108124 Bug ID: 108124 Summary: UBSAN issues when tests are run Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rust Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: dkm at gcc dot gnu.org, gcc-rust at gcc dot gnu.org Target Milestone: --- I built GCC compiler with ASAN & UBSAN enabled: F="-fsanitize=address,undefined -g -O2" ; make -j32 all-host -k CFLAGS="$F" CXXFLAGS="$F" LDFLAGS="$F" and I see a couple of issues: ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/rust/compile/torture/must_use2.rs -c /usr/include/c++/12/bits/stl_iterator.h:1096:17: runtime error: reference binding to null pointer of type 'struct SubstitutionParamMapping' #0 0x3be00ae in __gnu_cxx::__normal_iterator > >::operator*() const /usr/include/c++/12/bits/stl_iterator.h:1096 #1 0x3be00ae in std::vector >::front() /usr/include/c++/12/bits/stl_vector.h:1207 #2 0x3be00ae in Rust::TyTy::TypeBoundPredicate::TypeBoundPredicate(Rust::DefId, std::vector >, Location) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-bounds.cc:129 #3 0x3be0ea3 in Rust::TyTy::TypeBoundPredicate::error() /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-bounds.cc:207 #4 0x3cc9cb8 in Rust::Resolver::TypeCheckItem::visit(Rust::HIR::ImplBlock&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:74 #5 0x3cc72e7 in Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:39 #6 0x39c3724 in Rust::Resolver::TypeResolution::Resolve(Rust::HIR::Crate&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check.cc:48 #7 0x2aff5ff in Rust::Session::compile_crate(char const*) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:565 #8 0x2b0420e in Rust::Session::handle_input_files(int, char const**) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:362 #9 0x212ce46 in grs_langhook_parse_file /home/marxin/Programming/gcc/gcc/rust/rust-lang.cc:184 #10 0xcf3b22e in compile_file /home/marxin/Programming/gcc/gcc/toplev.cc:444 #11 0xcf4f14d in do_compile /home/marxin/Programming/gcc/gcc/toplev.cc:2125 #12 0xcf4f14d in toplev::main(int, char**) /home/marxin/Programming/gcc/gcc/toplev.cc:2277 #13 0x10409e86 in main /home/marxin/Programming/gcc/gcc/main.cc:39 #14 0x76a2c5af in __libc_start_call_main (/lib64/libc.so.6+0x275af) #15 0x76a2c678 in __libc_start_main_impl (/lib64/libc.so.6+0x27678) #16 0x212cbd4 in _start ../sysdeps/x86_64/start.S:115 /usr/include/c++/12/bits/stl_vector.h:1207:16: runtime error: reference binding to null pointer of type 'struct value_type' #0 0x3be00e8 in std::vector >::front() /usr/include/c++/12/bits/stl_vector.h:1207 #1 0x3be00e8 in Rust::TyTy::TypeBoundPredicate::TypeBoundPredicate(Rust::DefId, std::vector >, Location) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-bounds.cc:129 #2 0x3be0ea3 in Rust::TyTy::TypeBoundPredicate::error() /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-bounds.cc:207 #3 0x3cc9cb8 in Rust::Resolver::TypeCheckItem::visit(Rust::HIR::ImplBlock&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:74 #4 0x3cc72e7 in Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:39 #5 0x39c3724 in Rust::Resolver::TypeResolution::Resolve(Rust::HIR::Crate&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check.cc:48 #6 0x2aff5ff in Rust::Session::compile_crate(char const*) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:565 #7 0x2b0420e in Rust::Session::handle_input_files(int, char const**) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:362 #8 0x212ce46 in grs_langhook_parse_file /home/marxin/Programming/gcc/gcc/rust/rust-lang.cc:184 #9 0xcf3b22e in compile_file /home/marxin/Programming/gcc/gcc/toplev.cc:444 #10 0xcf4f14d in do_compile /home/marxin/Programming/gcc/gcc/toplev.cc:2125 #11 0xcf4f14d in toplev::main(int, char**) /home/marxin/Programming/gcc/gcc/toplev.cc:2277 #12 0x10409e86 in main /home/marxin/Programming/gcc/gcc/main.cc:39 #13 0x76a2c5af in __libc_start_call_main (/lib64/libc.so.6+0x275af) #14 0x76a2c678 in __libc_start_main_impl (/lib64/libc.so.6+0x27678) #15 0x212cbd4 in _start ../sysdeps/x86_64/start.S:115 /home/marxin/Programming/gcc/gcc/rust/util/fnv-hash.h:73:15: runtime error: shift exponent 6685089673273576526 is too large for 64-bit type 'long unsigned int' #0 0x2b84979 in Rust::Hash::FNV128::write(unsigned char const*, unsigned long) /home/marxin/Programming/gcc/gcc/rust/util/fnv-hash.h:73 #1 0x2b84979 in l
[Bug rust/108124] Rust: UBSAN issues when tests are run
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108124 Martin Liška changed: What|Removed |Added Target Milestone|--- |13.0 Last reconfirmed||2022-12-15 Ever confirmed|0 |1 Summary|UBSAN issues when tests are |Rust: UBSAN issues when |run |tests are run CC||cohenarthur at gcc dot gnu.org Status|UNCONFIRMED |NEW -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108124] Rust: UBSAN issues when tests are run
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108124 --- Comment #1 from Martin Liška --- ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/rust/compile/macro19.rs -w /home/marxin/Programming/gcc/gcc/rust/ast/rust-stmt.h:342:48: runtime error: load of value 190, which is not a valid value for type 'bool' #0 0x3546c7e in Rust::AST::ExprStmtWithBlock::is_semicolon_followed() const /home/marxin/Programming/gcc/gcc/rust/ast/rust-stmt.h:342 #1 0x3546c7e in Rust::HIR::ASTLoweringStmt::visit(Rust::AST::ExprStmtWithBlock&) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower-stmt.h:78 #2 0x35510cd in Rust::HIR::ASTLoweringStmt::translate(Rust::AST::Stmt*, bool*) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower-stmt.h:42 #3 0x3521208 in Rust::HIR::ASTLoweringBlock::visit(Rust::AST::BlockExpr&) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower.cc:113 #4 0x354de9e in Rust::HIR::ASTLoweringBlock::translate(Rust::AST::BlockExpr*, bool*) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower-block.h:36 #5 0x36ef7fa in Rust::HIR::ASTLoweringItem::visit(Rust::AST::Function&) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower-item.cc:428 #6 0x36b8646 in Rust::HIR::ASTLoweringItem::translate(Rust::AST::Item*) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower-item.cc:28 #7 0x351caeb in Rust::HIR::ASTLowering::go() /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower.cc:75 #8 0x351f7d9 in Rust::HIR::ASTLowering::Resolve(Rust::AST::Crate&) /home/marxin/Programming/gcc/gcc/rust/hir/rust-ast-lower.cc:65 #9 0x2afebf5 in Rust::Session::compile_crate(char const*) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:549 #10 0x2b0420e in Rust::Session::handle_input_files(int, char const**) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:362 #11 0x212ce46 in grs_langhook_parse_file /home/marxin/Programming/gcc/gcc/rust/rust-lang.cc:184 #12 0xcf3b22e in compile_file /home/marxin/Programming/gcc/gcc/toplev.cc:444 #13 0xcf4f14d in do_compile /home/marxin/Programming/gcc/gcc/toplev.cc:2125 #14 0xcf4f14d in toplev::main(int, char**) /home/marxin/Programming/gcc/gcc/toplev.cc:2277 #15 0x10409e86 in main /home/marxin/Programming/gcc/gcc/main.cc:39 #16 0x76a2c5af in __libc_start_call_main (/lib64/libc.so.6+0x275af) #17 0x76a2c678 in __libc_start_main_impl (/lib64/libc.so.6+0x27678) #18 0x212cbd4 in _start ../sysdeps/x86_64/start.S:115 -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108124] Rust: ASAN&UBSAN issues when tests are run
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108124 Martin Liška changed: What|Removed |Added Summary|Rust: UBSAN issues when |Rust: ASAN&UBSAN issues |tests are run |when tests are run --- Comment #2 from Martin Liška --- One more example of ASAN issue: /dev/shm/objdir2/gcc/testsuite/rust10/../../gccrs -B/dev/shm/objdir2/gcc/testsuite/rust10/../../ /home/marxin/Programming/gcc/gcc/testsuite/rust/compile/torture/generics16.rs -fdiagnostics-plain-output -frust-incomplete-and-experimental-compiler-do-not-use -O0 -S -o generics16.s /usr/include/c++/12/bits/stl_iterator.h:1096:17: runtime error: reference binding to null pointer of type 'struct SubstitutionParamMapping' /usr/include/c++/12/bits/stl_vector.h:1207:16: runtime error: reference binding to null pointer of type 'struct value_type' = ==13693==ERROR: AddressSanitizer: heap-use-after-free on address 0x60e05700 at pc 0x03b57bfe bp 0x7fff9a10 sp 0x7fff9a08 READ of size 4 at 0x60e05700 thread T0 #0 0x3b57bfd in Rust::TyTy::BaseType::get_kind() const /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty.h:206 #1 0x3b57bfd in Rust::TyTy::BaseRules::unify(Rust::TyTy::BaseType*) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-rules.h:113 #2 0x3a87ea1 in Rust::TyTy::IntType::unify(Rust::TyTy::BaseType*) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty.cc:1880 #3 0x3b77be0 in Rust::TyTy::ADTRules::visit(Rust::TyTy::ADTType&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-rules.h:1125 #4 0x3b54d25 in Rust::TyTy::BaseRules::unify(Rust::TyTy::BaseType*) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-rules.h:81 #5 0x3a87121 in Rust::TyTy::ADTType::unify(Rust::TyTy::BaseType*) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty.cc:980 #6 0x3ece21f in Rust::Resolver::TypeCheckImplItem::visit(Rust::HIR::Function&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-implitem.cc:369 #7 0x3ed2071 in Rust::Resolver::TypeCheckImplItem::Resolve(Rust::HIR::ImplBlock*, Rust::HIR::ImplItem*, Rust::TyTy::BaseType*) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-implitem.cc:338 #8 0x3ccdd4b in Rust::Resolver::TypeCheckItem::visit(Rust::HIR::ImplBlock&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:118 #9 0x3cc72e7 in Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check-item.cc:39 #10 0x39c3724 in Rust::Resolver::TypeResolution::Resolve(Rust::HIR::Crate&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-hir-type-check.cc:48 #11 0x2aff5ff in Rust::Session::compile_crate(char const*) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:565 #12 0x2b0420e in Rust::Session::handle_input_files(int, char const**) /home/marxin/Programming/gcc/gcc/rust/rust-session-manager.cc:362 #13 0x212ce46 in grs_langhook_parse_file /home/marxin/Programming/gcc/gcc/rust/rust-lang.cc:184 #14 0xcf3b22e in compile_file /home/marxin/Programming/gcc/gcc/toplev.cc:444 #15 0xcf4f14d in do_compile /home/marxin/Programming/gcc/gcc/toplev.cc:2125 #16 0xcf4f14d in toplev::main(int, char**) /home/marxin/Programming/gcc/gcc/toplev.cc:2277 #17 0x10409e86 in main /home/marxin/Programming/gcc/gcc/main.cc:39 #18 0x76a2c5af in __libc_start_call_main (/lib64/libc.so.6+0x275af) #19 0x76a2c678 in __libc_start_main_impl (/lib64/libc.so.6+0x27678) #20 0x212cbd4 in _start ../sysdeps/x86_64/start.S:115 0x60e05700 is located 32 bytes inside of 152-byte region [0x60e056e0,0x60e05778) freed by thread T0 here: #0 0x778bb0e8 (/lib64/libasan.so.8+0xbb0e8) #1 0x3b8f222 in Rust::TyTy::TypeCheckCallExpr::visit(Rust::TyTy::ADTType&) /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty-call.cc:69 previously allocated by thread T0 here: #0 0x778bc40f in __interceptor_malloc (/lib64/libasan.so.8+0xbc40f) #1 0x109248eb in operator new(unsigned long) ../../../../libstdc++-v3/libsupc++/new_op.cc:50 SUMMARY: AddressSanitizer: heap-use-after-free /home/marxin/Programming/gcc/gcc/rust/typecheck/rust-tyty.h:206 in Rust::TyTy::BaseType::get_kind() const Shadow bytes around the buggy address: 0x0c1c7fff8a90: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa 0x0c1c7fff8aa0: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00 0x0c1c7fff8ab0: 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa 0x0c1c7fff8ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c1c7fff8ad0: 00 00 00 fa fa fa fa fa fa fa fa fa fd fd fd fd =>0x0c1c7fff8ae0:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa 0x0c1c7fff8af0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c1c7fff8b00: 00 0
[Bug rust/108102] rust bootstrap comparison failure on s390x-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108102 Martin Liška changed: What|Removed |Added Last reconfirmed||2022-12-15 Status|UNCONFIRMED |WAITING Ever confirmed|0 |1 CC||marxin at gcc dot gnu.org -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108111] Rust meets clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108111 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org Last reconfirmed||2022-12-15 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108631] New: gcc/rust/backend/rust-constexpr.cc:2099:33: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ with --enab
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108631 Bug ID: 108631 Summary: gcc/rust/backend/rust-constexpr.cc:2099:33: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ with --enable-gather-detailed-mem-stats Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rust Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: cohenarthur at gcc dot gnu.org, dkm at gcc dot gnu.org, gcc-rust at gcc dot gnu.org Target Milestone: --- With --enable-gather-detailed-mem-stats enabled I get since r13-5533-ge66fec8e6ba35e: ../../gcc/rust/backend/rust-constexpr.cc: In function ‘tree_node* Rust::Compile::eval_constant_expression(const constexpr_ctx*, tree, bool, bool*, bool*, tree_node**)’: ../../gcc/rust/backend/rust-constexpr.cc:2099:33: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 2099 | r = unshare_constructor (r); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc:87:1: note: declared here 87 | unshare_constructor (tree t MEM_STAT_DECL); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc:2149:40: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 2149 | init = unshare_constructor (init); |^~ ../../gcc/rust/backend/rust-constexpr.cc:87:1: note: declared here 87 | unshare_constructor (tree t MEM_STAT_DECL); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc: In function ‘tree_node* Rust::Compile::eval_store_expression(const constexpr_ctx*, tree, bool, bool*, bool*)’: ../../gcc/rust/backend/rust-constexpr.cc:2933:30: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 2933 | init = unshare_constructor (init); | ^~ ../../gcc/rust/backend/rust-constexpr.cc:87:1: note: declared here 87 | unshare_constructor (tree t MEM_STAT_DECL); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc: In function ‘tree_node* Rust::Compile::eval_call_expression(const constexpr_ctx*, tree, bool, bool*, bool*)’: ../../gcc/rust/backend/rust-constexpr.cc:3555:45: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 3555 | arg = unshare_constructor (arg); | ^ ../../gcc/rust/backend/rust-constexpr.cc:87:1: note: declared here 87 | unshare_constructor (tree t MEM_STAT_DECL); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc: In function ‘long int Rust::Compile::find_array_ctor_elt(tree, tree, bool)’: ../../gcc/rust/backend/rust-constexpr.cc:4282:49: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 4282 | e.value = unshare_constructor (value); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc:4170:1: note: declared here 4170 | unshare_constructor (tree t MEM_STAT_DECL) | ^~~ ../../gcc/rust/backend/rust-constexpr.cc:4298:49: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ 4298 | e.value = unshare_constructor (value); | ^~~ ../../gcc/rust/backend/rust-constexpr.cc:4170:1: note: declared here 4170 | unshare_constructor (tree t MEM_STAT_DECL) -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108631] gcc/rust/backend/rust-constexpr.cc:2099:33: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ with --enable-ga
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108631 --- Comment #1 from Martin Liška --- Created attachment 54384 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54384&action=edit Patch candidate Please check what you get with -fmem-report with the suggested patch. -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust
[Bug rust/108631] gcc/rust/backend/rust-constexpr.cc:2099:33: error: too few arguments to function ‘tree_node* Rust::Compile::unshare_constructor(tree, const char*, int, const char*)’ with --enable-ga
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108631 --- Comment #3 from Martin Liška --- (In reply to Arthur Cohen from comment #2) > Patch looks good to me Martin, thank you. Will you push it directly? Do you see reasonable allocations when you run -fmem-report w/ --enable-gather-detailed-mem-stats? Please push it yourself. -- You are receiving this mail because: You are on the CC list for the bug. -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust