[Bug middle-end/101326] std::optional returns forced through stack

2023-07-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug middle-end/101326] std::optional returns forced through stack

2023-04-26 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 Andrew Pinski changed: What|Removed |Added CC||david at westcontrol dot com --- Commen

[Bug middle-end/101326] std::optional returns forced through stack

2021-07-06 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 --- Comment #4 from Andrew Pinski --- (In reply to Richard Biener from comment #3) > and yes, if it would have had TImode we could expand it to a register pair > but it has BLKmode because it's TYPE_NEEDS_CONSTRUCTING(?), the type > isn't TREE_A

[Bug middle-end/101326] std::optional returns forced through stack

2021-07-05 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 --- Comment #3 from Richard Biener --- I think the issue is simply that RTL expansion forces the object to memory since that is what GIMPLE does: struct optional foo () { struct optional D.12374; [local count: 1073741824]: MEM [(struct

[Bug middle-end/101326] std::optional returns forced through stack

2021-07-05 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-07-05 Severity|normal

[Bug middle-end/101326] std::optional returns forced through stack

2021-07-05 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101326 --- Comment #1 from Tamar Christina --- last example for x86 should have been foo():# @foo() xor eax, eax mov dl, 1 ret