HomeFreeBSD

chinese/c2t: fix "error: address of register variable requested"

Description

chinese/c2t: fix "error: address of register variable requested"

During an exp-run for llvm 13 (see bug 258209), it turned out that
chinese/c2t fails to build with clang 13:

cc -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DCHINDICT=\"/usr/local/share/chinese/gb/TONEPY.tit\" -c c2t.c
c2t.c:99:3: error: address of register variable requested

hz[2] = '\0';
^~

c2t.c:107:7: error: address of register variable requested

hz[0] = (char)eka;
^~

c2t.c:108:7: error: address of register variable requested

hz[1] = (char)toka;
^~

c2t.c:113:8: error: address of register variable requested

if (hz[0] != (*pipo)[i] || hz[1] != (*pipo)[i+1]) continue;
    ^~

c2t.c:113:31: error: address of register variable requested

if (hz[0] != (*pipo)[i] || hz[1] != (*pipo)[i+1]) continue;
                           ^~

c2t.c:133:36: error: address of register variable requested

fprintf(miss_chars, "%c", hz[0]);
                          ^~

c2t.c:134:30: error: address of register variable requested

fprintf(miss_chars, "%c ", hz[1]);
                           ^~

c2t.c:143:17: error: address of register variable requested

printf("%c", hz[0]);
             ^~

c2t.c:144:18: error: address of register variable requested

printf("%c ", hz[1]);
              ^~

9 errors generated.

As indicated, arrays shouldn't be register variables as they don't have
addresses. In general, the register keyword is deprecated and should no
longer be used.

To fix this, use a command line flag to define "register" to empty.

PR: 258465
Approved by: maintainer timeout (2 weeks)
MFH: 2021Q4

Details

Provenance
dimAuthored on Sep 12 2021, 8:48 PM
Parents
R11:7075120b4d50: irc/bitchx: fix non-static inline functions
Branches
Unknown
Tags
Unknown