On Tue, 1 Jun 2021 at 23:34, Mark Wielaard wrote: > Hi, > > On Tue, Jun 01, 2021 at 12:31:02AM +0200, Mark Wielaard wrote: > > There are currently three builders, fedora-x86_64, debian-arm64 and > > fedora-ppc64le which we know are zero fail. It would be nice to see > > how 32bit (debian-i386 or debian-armhf) and big-endian (fedora-s390x > > or fedora-ppc64) targets are doing. I haven't tried them yet. > > I tried the simplest 32bit target, debian-i386 and it builds, but make > check-rust fails. It seems to have trouble processing f64 > defintions/values. > > mark@debian-i386:~/gccrs-build$ gcc/rust1 > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs > Preparing to parse files. > Attempting to parse file: /home/mark/gccrs/gcc/testsuite/rust.test/compile/ > methods1.rs > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ':' 'float literal' ',' > can be struct expr: 'true', not a block: 'true' > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ':' 'identifier' ',' > can be struct expr: 'true', not a block: 'true' > beginning null denotation identifier handling > current peek token when starting path pratt parse: ',' > current token (just about to return path to null denotation): ',' > finished null denotation identifier path parsing - next is branching > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > beginning null denotation identifier handling > current peek token when starting path pratt parse: '}' > current token (just about to return path to null denotation): '}' > finished null denotation identifier path parsing - next is branching > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > successfully parsed inherent impl > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ',' 'identifier' '}' > can be struct expr: 'true', not a block: 'true' > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > beginning null denotation self/self-alias/dollar/crate/super handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > just finished parsing path (going to disambiguate) - peeked token is '.' > beginning null denotation self/self-alias/dollar/crate/super handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > just finished parsing path (going to disambiguate) - peeked token is '.' > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > successfully parsed inherent impl > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: ',' > current token (just about to return path to null denotation): ',' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: ')' > current token (just about to return path to null denotation): ')' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > SUCCESSFULLY PARSED CRATE > ran register_plugins (with no body) > SUCCESSFULLY REGISTERED PLUGINS > started injection > finished injection > SUCCESSFULLY FINISHED INJECTION > started expansion > finished expansion > SUCCESSFULLY FINISHED EXPANSION > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:38:9: > warning: unused name 'sum' > 38 | let sum = rect.sum_x(); > | ^ > > Analyzing compilation unit > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs: In function > ‘Rectangle_sum_x’: > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: error: > type mismatch in binary expression > 26 | fn sum_x(self) -> f64 { > | ^ > f64 > > > > > > D.227 = _2 + _4; > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: > internal compiler error: ‘verify_gimple’ failed > 0x8b114e4 verify_gimple_in_seq(gimple*) > ../../gccrs/gcc/tree-cfg.c:5157 > 0x881a9e3 gimplify_body(tree_node*, bool) > ../../gccrs/gcc/gimplify.c:15401 > 0x881abb2 gimplify_function_tree(tree_node*) > ../../gccrs/gcc/gimplify.c:15472 > 0x8675c88 cgraph_node::analyze() > ../../gccrs/gcc/cgraphunit.c:670 > 0x8678a58 analyze_functions > ../../gccrs/gcc/cgraphunit.c:1236 > 0x8679641 symbol_table::finalize_compilation_unit() > ../../gccrs/gcc/cgraphunit.c:2514 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See for instructions. > -- > Gcc-rust mailing list > Gcc-rust@gcc.gnu.org > https://gcc.gnu.org/mailman/listinfo/gcc-rust > > Hi Mark, This is a good find I will open an issue to track this, I have a local Debian 32 bit machine at home so I can try this on later in the week. Off the top of my head I am wondering if there is something wrong with how we are building up the integer tree nodes. The relevant code starts in gcc/rust/backend/rust-compile-tyty.h inside ``` void visit (TyTy::IntType &type) override```. Let me know if you get anywhere with this before Friday since I will should be able to look into this issue then. --Phil