Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Oct 2021 11:23:16 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 0efce95397d4 - main - chinese/c2t: fix "error: address of register variable requested"
Message-ID:  <202110021123.192BNGM1084192@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dim (src committer):

URL: https://cgit.FreeBSD.org/ports/commit/?id=0efce95397d4b53be14448a803902191ab8c1df3

commit 0efce95397d4b53be14448a803902191ab8c1df3
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-09-12 20:48:25 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-10-02 11:19:56 +0000

    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
---
 chinese/c2t/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/chinese/c2t/Makefile b/chinese/c2t/Makefile
index f39b83ce7475..fc3e01b36cc8 100644
--- a/chinese/c2t/Makefile
+++ b/chinese/c2t/Makefile
@@ -13,6 +13,8 @@ COMMENT=	Translates GB/Big5 encoding to tone pinyin
 NO_WRKSUBDIR=	yes
 EXTRACT_ONLY=	c2t.tar.gz
 
+CFLAGS+=	-Dregister=
+
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/share/chinese/gb
 	${INSTALL_PROGRAM} ${WRKSRC}/c2t ${STAGEDIR}${PREFIX}/bin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110021123.192BNGM1084192>