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