diff options
author | Muhammad Mahad <mahadtxt@gmail.com> | 2023-08-03 20:46:50 +0500 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-08-10 09:35:08 +0000 |
commit | 2da2efa10f3904cfb7e96058dc42681a0cc6191e (patch) | |
tree | 9192098c8abd8d6a459909dafb361926e447512b /gcc | |
parent | e4da7e5d6be1e9f61d5d93a870c51dd626d0a7e3 (diff) | |
download | gcc-2da2efa10f3904cfb7e96058dc42681a0cc6191e.zip gcc-2da2efa10f3904cfb7e96058dc42681a0cc6191e.tar.gz gcc-2da2efa10f3904cfb7e96058dc42681a0cc6191e.tar.bz2 |
gccrs: [E0703] Use of Invalid ABI
Added error code support for invalid ABI.
gcc/rust/ChangeLog:
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
called error function.
(ASTLoweringBase::lower_extern_block): likewise.
gcc/testsuite/ChangeLog:
* rust/compile/abi-options1.rs: updated comment for testcase.
Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/hir/rust-ast-lower-base.cc | 6 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/abi-options1.rs | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/rust/hir/rust-ast-lower-base.cc b/gcc/rust/hir/rust-ast-lower-base.cc index ad8a331..3ddc751 100644 --- a/gcc/rust/hir/rust-ast-lower-base.cc +++ b/gcc/rust/hir/rust-ast-lower-base.cc @@ -702,7 +702,8 @@ ASTLoweringBase::lower_qualifiers (const AST::FunctionQualifiers &qualifiers) const std::string &extern_abi = qualifiers.get_extern_abi (); abi = get_abi_from_string (extern_abi); if (has_extern && abi == ABI::UNKNOWN) - rust_error_at (qualifiers.get_locus (), "unknown ABI option"); + rust_error_at (qualifiers.get_locus (), ErrorCode::E0703, + "invalid ABI: found %qs", extern_abi.c_str ()); } return HIR::FunctionQualifiers (qualifiers.get_const_status (), unsafety, @@ -946,7 +947,8 @@ ASTLoweringBase::lower_extern_block (AST::ExternBlock &extern_block) const std::string &extern_abi = extern_block.get_abi (); abi = get_abi_from_string (extern_abi); if (abi == ABI::UNKNOWN) - rust_error_at (extern_block.get_locus (), "unknown ABI option"); + rust_error_at (extern_block.get_locus (), ErrorCode::E0703, + "invalid ABI: found %qs", extern_abi.c_str ()); } HIR::ExternBlock *hir_extern_block diff --git a/gcc/testsuite/rust/compile/abi-options1.rs b/gcc/testsuite/rust/compile/abi-options1.rs index a4b6241..797dff0 100644 --- a/gcc/testsuite/rust/compile/abi-options1.rs +++ b/gcc/testsuite/rust/compile/abi-options1.rs @@ -1,7 +1,9 @@ extern "foobar" { - // { dg-error "unknown ABI option" "" { target *-*-* } .-1 } + // { dg-error "invalid ABI: found .foobar." "" { target *-*-* } .-1 } fn printf(s: *const i8, ...); } pub extern "baz" fn test() {} -// { dg-error "unknown ABI option" "" { target *-*-* } .-1 } +// { dg-error "invalid ABI: found .baz." "" { target *-*-* } .-1 } + +// extern "Rust" fn foo() {} // OK!
\ No newline at end of file |