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

            Bug ID: 70891
           Summary: "register name not specified" for const qualified
                    register variable
           Product: gcc
           Version: 5.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jens.gustedt at inria dot fr
  Target Milestone: ---

Created attachment 38387
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38387&action=edit
complete example to reproduce the bug

Gcc in different variants (I tried 4.8, 4.9 and 5.3) gives an error for

  register const struct large max4 = { .x0 = -1, .x1 = -1, };

Where large is just a struct consisting of two unsigned.
the error is

   gcc-register-const-bug.c:27:31: error: register name not specified for
'max4'

which seems to refer to the "asm register" extension of gcc, but which isn't
used here at all.

The example is minimal in the sense that *any* of the following has the bug
disappear

 - removing the const qualification
 - removing the register storage class
 - changing any of the initial values from -1 to 0

I attach a complete example that on my machine (x86_64) errors out exactly on
the line as indicated. All other variants in that file compile just fine.

As another data point, clang, in different versions, has no problem with this
code at all.
Thanks
Jens

Reply via email to