From 87ccd32da00e82584215c759e80bd092003c9efb Mon Sep 17 00:00:00 2001 From: Muhammad Mahad Date: Tue, 15 Aug 2023 19:07:52 +0500 Subject: [PATCH] gccrs: [E0535] Unknown argument given to inline attribute The inline attribute only supports two arguments: - always - never All other arguments given to the inline attribute will return error. gcc/rust/ChangeLog: * backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl): Added rich_location & error code. gcc/testsuite/ChangeLog: * rust/compile/inline_2.rs: Added new message. Signed-off-by: Muhammad Mahad --- gcc/rust/backend/rust-compile-base.cc | 6 +++++- gcc/testsuite/rust/compile/inline_2.rs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/rust/backend/rust-compile-base.cc b/gcc/rust/backend/rust-compile-base.cc index 186736875383..492588dfdf99 100644 --- a/gcc/rust/backend/rust-compile-base.cc +++ b/gcc/rust/backend/rust-compile-base.cc @@ -275,7 +275,11 @@ HIRCompileBase::handle_inline_attribute_on_fndecl (tree fndecl, } else { - rust_error_at (attr.get_locus (), "unknown inline option"); + rich_location rich_locus (line_table, attr.get_locus ()); + rich_locus.add_fixit_replace ("unknown inline option"); + rust_error_at (rich_locus, ErrorCode::E0535, + "invalid argument, % attribute only accepts " + "% or %"); } } diff --git a/gcc/testsuite/rust/compile/inline_2.rs b/gcc/testsuite/rust/compile/inline_2.rs index 1fa5862e10f0..b6cfc83be725 100644 --- a/gcc/testsuite/rust/compile/inline_2.rs +++ b/gcc/testsuite/rust/compile/inline_2.rs @@ -1,5 +1,5 @@ // { dg-additional-options "-w" } -#[inline(A)] // { dg-error "unknown inline option" } +#[inline(A)] // { dg-error "invalid argument, .inline. attribute only accepts .always. or .never." } fn test_a() {} #[inline(A, B)] // { dg-error "invalid number of arguments" } -- 2.47.2