Inline assembly without memory effects is implicitly memory safe.

This commit is contained in:
Daniel Kirchner
2022-03-02 16:42:28 +01:00
parent e6848caac1
commit 9bcfcc61a7
6 changed files with 18 additions and 5 deletions
@@ -2138,7 +2138,7 @@ void IRGeneratorForStatements::endVisit(MemberAccess const& _memberAccess)
bool IRGeneratorForStatements::visit(InlineAssembly const& _inlineAsm)
{
setLocation(_inlineAsm);
if (!_inlineAsm.annotation().memorySafe)
if (*_inlineAsm.annotation().hasMemoryEffects && !_inlineAsm.annotation().markedMemorySafe)
m_context.setMemoryUnsafeInlineAssemblySeen();
CopyTranslate bodyCopier{_inlineAsm.dialect(), m_context, _inlineAsm.annotation().externalReferences};