https://gcc.gnu.org/g:1721aea7f8ec8aae3aaf22aa2245cac7cfe020fe
commit r16-7770-g1721aea7f8ec8aae3aaf22aa2245cac7cfe020fe Author: Jayant Chauhan <[email protected]> Date: Tue Jan 13 13:40:47 2026 +0530 gccrs: util/attributes: Error on #[repr] applied to functions The #[repr] attribute is only valid for structs, enums, and unions. Applying it to a function is invalid and should result in an error. This patch adds a check in the attribute visitor to reject #[repr] on functions, matching rustc behavior. Fixes Rust-GCC#4232 gcc/rust/ChangeLog: * util/rust-attributes.cc (AttributeChecker::check_attributes): Emit error for #[repr]. gcc/testsuite/ChangeLog: * rust/compile/issue-4232.rs: New test. Signed-off-by: Jayant Chauhan <[email protected]> Diff: --- gcc/rust/util/rust-attributes.cc | 6 ++++++ gcc/testsuite/rust/compile/issue-4232.rs | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gcc/rust/util/rust-attributes.cc b/gcc/rust/util/rust-attributes.cc index 0e5234687602..bf7f3d9827d6 100644 --- a/gcc/rust/util/rust-attributes.cc +++ b/gcc/rust/util/rust-attributes.cc @@ -912,6 +912,12 @@ AttributeChecker::visit (AST::Function &fun) { check_link_section_attribute (attribute); } + else if (result.name == Attrs::REPR) + { + rust_error_at ( + attribute.get_locus (), + "attribute should be applied to a struct, enum, or union"); + } } if (fun.has_body ()) diff --git a/gcc/testsuite/rust/compile/issue-4232.rs b/gcc/testsuite/rust/compile/issue-4232.rs new file mode 100644 index 000000000000..fa12538808d8 --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-4232.rs @@ -0,0 +1,3 @@ +// { dg-options "-w" } +#[repr(C)] // { dg-error "attribute should be applied to a struct, enum, or union" } +fn a() {} \ No newline at end of file
