gccrs: rustc_attrs: Allow rustc_inherit_overflow_checks as a builtin..

..attribute. We cannot yet handle this attribute, but we should not reject it either

gcc/rust/ChangeLog:

	* util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list
	of builtin attributes.

gcc/testsuite/ChangeLog:

	* rust/compile/rustc_attr1.rs: New test.
This commit is contained in:
Arthur Cohen
2022-08-26 14:06:23 +02:00
parent 9c87dc0afe
commit 3a3a352091
2 changed files with 30 additions and 15 deletions

View File

@@ -26,21 +26,23 @@ namespace Rust {
namespace Analysis {
// https://doc.rust-lang.org/stable/nightly-rustc/src/rustc_feature/builtin_attrs.rs.html#248
static const BuiltinAttrDefinition __definitions[] = {
{"inline", CODE_GENERATION},
{"cold", CODE_GENERATION},
{"cfg", EXPANSION},
{"cfg_attr", EXPANSION},
{"deprecated", STATIC_ANALYSIS},
{"allow", STATIC_ANALYSIS},
{"doc", HIR_LOWERING},
{"must_use", STATIC_ANALYSIS},
{"lang", HIR_LOWERING},
{"link_section", CODE_GENERATION},
{"no_mangle", CODE_GENERATION},
{"repr", CODE_GENERATION},
{"path", EXPANSION},
};
static const BuiltinAttrDefinition __definitions[]
= {{"inline", CODE_GENERATION},
{"cold", CODE_GENERATION},
{"cfg", EXPANSION},
{"cfg_attr", EXPANSION},
{"deprecated", STATIC_ANALYSIS},
{"allow", STATIC_ANALYSIS},
{"doc", HIR_LOWERING},
{"must_use", STATIC_ANALYSIS},
{"lang", HIR_LOWERING},
{"link_section", CODE_GENERATION},
{"no_mangle", CODE_GENERATION},
{"repr", CODE_GENERATION},
{"path", EXPANSION},
// From now on, these are reserved by the compiler and gated through
// #![feature(rustc_attrs)]
{"rustc_inherit_overflow_checks", CODE_GENERATION}};
BuiltinAttributeMappings *
BuiltinAttributeMappings::get ()

View File

@@ -0,0 +1,13 @@
// { dg-additional-options "-w" }
#![feature(rustc_attrs)]
pub struct NotI8(i8);
impl NotI8 {
#[inline]
#[rustc_inherit_overflow_checks]
pub fn add(self, other: NotI8) -> NotI8 {
NotI8(self.0 + other.0)
}
}