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

            Bug ID: 71528
           Summary: multiple extern reference declarations produce
                    uninitialized access
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: P at draigBrady dot com
  Target Milestone: ---

This is a regression since 5.1 which works with clang and gcc 4.x
The issue is due to the redundant extern reference declaration,
which results in use of an unitialized reference. I.E. in this snippet,
x will have the NULL pointer rather than that of the "new int":

extern int& x;
int& x = *(new int);
int main() { return !(&x); }
// Comment out the following line for expected operation
extern int& x;

https://godbolt.org/g/dDDPnw

Reply via email to