Bug 271851

Summary: textproc/opensp: fix build with clang 16
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: Dimitry Andric <dim>
Status: Closed FIXED    
Severity: Affects Some People CC: fernape
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 271047    
Attachments:
Description Flags
textproc/opensp: fix build with clang 16 none

Description Dimitry Andric freebsd_committer freebsd_triage 2023-06-05 21:03:05 UTC
Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
Because textproc/opensp's build infrastructure does not explicitly set
its C++ standard, this leads to an error:

  Recognizer.cxx:42:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
    register const Trie *pos = trie_.pointer();
    ^~~~~~~~~

To work around the error, define the register keyword away using
CPPFLAGS.
Comment 1 Dimitry Andric freebsd_committer freebsd_triage 2023-06-05 21:04:14 UTC
Created attachment 242625 [details]
textproc/opensp: fix build with clang 16
Comment 2 Fernando ApesteguĂ­a freebsd_committer freebsd_triage 2023-06-06 15:10:28 UTC
^Triage: reporter is committer, assign accordingly.

LGTM
Comment 3 commit-hook freebsd_committer freebsd_triage 2023-06-06 17:01:23 UTC
A commit in branch main references this bug:

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

commit af011365cffd2b76bab3f514de664e803575fb1f
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-06-05 21:00:15 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-06-06 16:58:39 +0000

    textproc/opensp: fix build with clang 16

    Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
    Because textproc/opensp's build infrastructure does not explicitly set
    its C++ standard, this leads to an error:

      Recognizer.cxx:42:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
        register const Trie *pos = trie_.pointer();
        ^~~~~~~~~

    To work around the error, define the register keyword away using
    CPPFLAGS.

    PR:             271851
    Approved by:    fernape
    MFH:            2023Q2

 textproc/opensp/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)