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

            Bug ID: 108587
           Summary: `decltype(x) x;` in struct declaration causes "changes
                    meaning of" error
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mserdarsanli at gmail dot com
  Target Milestone: ---

Godbolt link: https://godbolt.org/z/rjEGPKcE7


void fine() {
    int x;

    struct {
        int x;
    } v = {
        .x = x,
    };
}

void not_fine() {
    int x;

    struct {
        decltype(x) x; // error: declaration of 'int not_fine()::<unnamed
struct>::x' changes meaning of 'x' [-fpermissive]
    } v = {
        .x = x,
    };
}

Reply via email to