https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79992

            Bug ID: 79992
           Summary: accessing storage member of lambda via pointer with
                    -no-pie causes the next function to overwrite the
                    pointer's data
           Product: gcc
           Version: 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 `-no-pie`; I tried
`-fno-strict-aliasing -fwrapv` and the problem still reproduces.
Language: C++
Exact GCC version: 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)
OS: Ubuntu

Overall the problem is that when getting a pointer of member of lambda in
certain
flow, the pointer will point to the stack, and provoke other functions to
overwrite it.

I proved it by printing the variable twice without a gap, and it printed
something
else the second time.

Reply via email to