diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-02-27 13:35:50 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-08-01 13:11:29 +0200 |
commit | 3c04d95309692746ca36b1cdb4242d0984dd1473 (patch) | |
tree | 2fc6a4a9886bfc53feceb9f8aa8a119d650e2110 /gcc/rust/hir | |
parent | 5d30562dcfa59d86210976c92d187f0d86f64be4 (diff) | |
download | gcc-3c04d95309692746ca36b1cdb4242d0984dd1473.zip gcc-3c04d95309692746ca36b1cdb4242d0984dd1473.tar.gz gcc-3c04d95309692746ca36b1cdb4242d0984dd1473.tar.bz2 |
gccrs: lang-items: Cleanup parsing and lookups of lang items.
gcc/rust/ChangeLog:
* Make-lang.in: Compile new rust-lang-item.o.
* util/rust-lang-item.h: Split into header and source.
* util/rust-lang-item.cc: Cleanup parsing of lang items by using a hashmap
and returning optional values, cleanup handling of exhaustive lang item
lookups.
* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_lang_item_attribute): Use
new optional API.
Diffstat (limited to 'gcc/rust/hir')
-rw-r--r-- | gcc/rust/hir/rust-ast-lower-base.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/rust/hir/rust-ast-lower-base.cc b/gcc/rust/hir/rust-ast-lower-base.cc index 3ff0f52..815b98f 100644 --- a/gcc/rust/hir/rust-ast-lower-base.cc +++ b/gcc/rust/hir/rust-ast-lower-base.cc @@ -789,13 +789,12 @@ ASTLoweringBase::handle_lang_item_attribute (const ItemWrapper &item, auto &literal = static_cast<AST::AttrInputLiteral &> (attr.get_attr_input ()); const auto &lang_item_type_str = literal.get_literal ().as_string (); auto lang_item_type = Analysis::RustLangItem::Parse (lang_item_type_str); - if (lang_item_type == Analysis::RustLangItem::ItemType::UNKNOWN) - { - rust_error_at (attr.get_locus (), "unknown lang item"); - return; - } - mappings->insert_lang_item (lang_item_type, - item.get_mappings ().get_defid ()); + + if (lang_item_type) + mappings->insert_lang_item (*lang_item_type, + item.get_mappings ().get_defid ()); + else + rust_error_at (attr.get_locus (), "unknown lang item"); } bool |