https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
--- Comment #10 from Richard Biener ---
Author: rguenth
Date: Thu Mar 24 12:19:56 2016
New Revision: 234453
URL: https://gcc.gnu.org/viewcvs?rev=234453=gcc=rev
Log:
2016-03-24 Richard Biener
PR middle-end/70370
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
Richard Biener changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
Richard Biener changed:
What|Removed |Added
Keywords||ice-checking, wrong-code
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
--- Comment #7 from Richard Biener ---
Testcase for inout that now will error with the patch (but also ICEd before).
_Complex float foo (_Complex float f)
{
__asm__ ("" : "+r" (__real f));
return f;
}
> ./cc1 -quiet t.c -fdump-tree-all
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
--- Comment #6 from Richard Biener ---
So we have !allows_mem here which we can only handle if !is_inout by
emitting a store in the post-queue like
__asm__("" : "=r" tem_1);
__real f = tem_1;
The following works for me (otherwise untested
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70370
Richard Biener changed:
What|Removed |Added
Target|aarch64 |
Status|NEW