d: Always set ASM_VOLATILE_P on asm statements (PR94425)

gcc/d/ChangeLog:

	PR d/94425
	* toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P
	on all asm statements.
This commit is contained in:
Iain Buclaw 2020-03-31 00:24:13 +02:00
parent 42867b875c
commit 30d26118f9
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2020-04-07 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/94425
* toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P
on all asm statements.
2020-04-01 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/90136

View File

@ -1427,8 +1427,9 @@ public:
if (s->args == NULL && s->clobbers == NULL)
ASM_INPUT_P (exp) = 1;
/* Asm statements are treated as volatile unless 'pure'. */
ASM_VOLATILE_P (exp) = !(s->stc & STCpure);
/* All asm statements are assumed to have a side effect. As a future
optimization, this could be unset when building in release mode. */
ASM_VOLATILE_P (exp) = 1;
add_stmt (exp);
}