[Bug tree-optimization/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-13 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #15 from Yanai --- > How so? SRA has > > > [t1.cc:10:47] [t1.cc:10:47] D.36138.v = [t1.cc:24:29] &[t1.cc:24:20] > > MEM[(const struct __lambda0 *)[t1.cc:17:42] &D.36138].__i; > ... > > [t1.cc:17:42] D.36138 ={v} {CLOBBER}; > ...

[Bug tree-optimization/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-13 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #14 from Yanai --- > > How so? SRA has > > > [t1.cc:10:47] [t1.cc:10:47] D.36138.v = [t1.cc:24:29] &[t1.cc:24:20] > > MEM[(const struct __lambda0 *)[t1.cc:17:42] &D.36138].__i; > ... > > [t1.cc:17:42] D.36138 ={v} {CLOBBER}; >

[Bug tree-optimization/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #12 from Yanai --- It took me 5 minutes to guess that it polluted my home folder, but thanks anyway. More semi-on-topic: I have another potential bug (aside 4 others), the bug is that the compiler says there's no ::type in enable_if,

[Bug c++/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #9 from Yanai --- I don't mean step by step, but in which statement I created that lambda's storage and destroyed it, and between used it?

[Bug c++/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #8 from Yanai --- Even though I don't understand this low level prints of GCC (which I interested in how you got them), can you tell me how in a manner I can understand how that pointer pointed to an automatic storage (I assume)?

[Bug middle-end/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #5 from Yanai --- but if I still hold the lambda locally, shouldn't it point to inside the lambda's storage? See that I still hold no_pie_2 when accessing the variable that I got from it's lambda object.

[Bug middle-end/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 Yanai Eliyahu changed: What|Removed |Added CC||yanai.eli11 at gmail dot com

[Bug middle-end/79992] New: accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
rsion: 6.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: yanai.eli11 at gmail dot com Target Milestone: --- See attached file for code, and compile it with `-n

[Bug middle-end/79992] accessing storage member of lambda via pointer with -no-pie causes the next function to overwrite the pointer's data

2017-03-10 Thread yanai.eli11 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992 --- Comment #1 from Yanai Eliyahu --- Created attachment 40943 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40943&action=edit the .cpp that has the bug