various fixes for naked_asm!
implementation
- fix for divergence - fix error message - fix another cranelift test - fix some cranelift things - don't set the NORETURN option for naked asm - fix use of naked_asm! in doc comment - fix use of naked_asm! in run-make test - use `span_bug` in unreachable branch
This commit is contained in:
parent
10fa482906
commit
5fc60d1e52
29 changed files with 116 additions and 73 deletions
|
@ -2435,7 +2435,7 @@ pub enum AsmMacro {
|
|||
}
|
||||
|
||||
impl AsmMacro {
|
||||
pub const fn macro_name(&self) -> &'static str {
|
||||
pub const fn macro_name(self) -> &'static str {
|
||||
match self {
|
||||
AsmMacro::Asm => "asm",
|
||||
AsmMacro::GlobalAsm => "global_asm",
|
||||
|
@ -2443,13 +2443,21 @@ impl AsmMacro {
|
|||
}
|
||||
}
|
||||
|
||||
pub const fn is_supported_option(&self, option: InlineAsmOptions) -> bool {
|
||||
pub const fn is_supported_option(self, option: InlineAsmOptions) -> bool {
|
||||
match self {
|
||||
AsmMacro::Asm => true,
|
||||
AsmMacro::GlobalAsm => InlineAsmOptions::GLOBAL_OPTIONS.contains(option),
|
||||
AsmMacro::NakedAsm => InlineAsmOptions::NAKED_OPTIONS.contains(option),
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn diverges(self, options: InlineAsmOptions) -> bool {
|
||||
match self {
|
||||
AsmMacro::Asm => options.contains(InlineAsmOptions::NORETURN),
|
||||
AsmMacro::GlobalAsm => true,
|
||||
AsmMacro::NakedAsm => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Inline assembly.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue