gccrs
gccrs copied to clipboard
GCC Front-End for Rust
### Summary When compiling code using #[derive(Default)], GCC-RS 14.0.1 fails with an internal compiler error (segmentation fault), while rustc-nightly compiles successfully with warnings. ### Reproducer I tried this code: ```rust...
### Summary When compiling a program using nested macros with decl_macro feature, GCC-RS 14.0.1 crashes with an internal compiler error while rustc-nightly compiles successfully (with warnings). ### Reproducer I tried...
### Summary The provided Rust code compiles successfully with rustc but fails with gccrs due to a type mismatch and an internal compiler error (ICE). The issues occur when initializing...
### Summary This code causes an error in gccrs, but rustc didn't report the error. The compiler experiences significant performance degradation when handling recursive calls and nested structures, leading to...
auto-reduced (treereduce-rust): ````rust //@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use -frust-name-resolution-2.0 pub struct TreeBuilder { pub h: H, } impl TreeBuilder { pub fn process_token(&mut self) { match self { _ => for _y in...
gcc/rust/ChangeLog: ``` * ast/rust-ast-collector.cc (TokenCollector::visit): Removed. * backend/rust-compile-item.h (CompileItem::visit): Remove EnumItemDiscriminant case. * backend/rust-compile-stmt.h (CompileStmt::visit): Remove EnumItemDiscriminant case. * checks/errors/borrowck/rust-bir-builder-expr-stmt.h (BIRBuilderExprStmt::visit): Remove EnumItemDiscriminant case. * checks/errors/borrowck/rust-bir-builder-struct.h (BIRBuilderStruct::visit): Remove EnumItemDiscriminant case....
Per the Rust reference: https://doc.rust-lang.org/reference/items/enumerations.html Meaning that all possible enum items (identifiers, structs or tuples) can have a discriminant, even in 1.49 - however, the feature was still experimental back...
auto-reduced (treereduce-rust): ````rust //@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use pub enum T { A(u64), B, } pub extern "C" fn t_add(a: T, b: T) -> u64 { match (a, b) {} } ```` original:...
### Related Issue https://github.com/Rust-GCC/gccrs/issues/3635 ### Code ```rust fn main() { let y = 3; enum Foo { Bar = y, // { dg-error "cannot find value .y. in this scope"...
> FYI this desugaring is no longer correct in e2024: the two expressions now have different drop order. _Originally posted by @riking in [#1177](https://github.com/Rust-GCC/gccrs/issues/1177#issuecomment-2770974845)_