https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
Jiu Fu Guo changed:
What|Removed |Added
Resolution|--- |FIXED
Status|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
Jiu Fu Guo changed:
What|Removed |Added
CC||guojiufu at gcc dot gnu.org
--- Comment #7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #6 from Segher Boessenkool ---
BLKmode is *not* valid for registers. reg:BLK at one time was a special
marker for invalid asm operands, apparently.
:BLK is for mem, and for parallel as well in some cases, but not for reg.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #5 from Jakub Jelinek ---
BLKmode is valid mode for larger aggregate arguments and return values.
As documented:
"The return value is usually either a @code{reg} RTX for the hard
register in which to pass the argument, or zero to pas
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #3 from Jakub Jelinek ---
But reg:BLK is exactly what the backend emits.
Both on the 2 testcases mentioned above (on which there is an ICE afterwards)
and say on:
struct a {
short b : 2048;
};
void c(...) { c(a()); }
which doesn't
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #2 from Segher Boessenkool ---
@findex BLKmode
@item BLKmode
``Block'' mode represents values that are aggregates to which none of
the other modes apply. In RTL, only memory references can have this mode,
and only if they appear in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #1 from Jakub Jelinek ---
There is already
FAIL: g++.dg/other/pr84964.C -std=c++98 (internal compiler error: Aborted
signal terminated program cc1plus)
FAIL: g++.dg/other/pr84964.C -std=c++98 1 blank line(s) in output
FAIL: g++.dg