Bug 281887

Summary: multimedia/mjpegtools: fix build with clang 19
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: freebsd-multimedia (Nobody) <multimedia>
Status: Closed FIXED    
Severity: Affects Only Me Flags: bugzilla: maintainer-feedback? (multimedia)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 280562    
Attachments:
Description Flags
multimedia/mjpegtools: fix build with clang 19 none

Description Dimitry Andric freebsd_committer freebsd_triage 2024-10-06 09:50:38 UTC
Clang 19 has become more strict about errors in member functions, which
results in errors building multimedia/mjpegtools:

  ./Region2D.hh:439:13: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
    439 |                         || this->DoesContainPoint (rHere.m_tnY, tnX)))
        |                            ~~~~  ^
  ./Region2D.hh:446:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
    446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                       ~~~~  ^
  ./Region2D.hh:446:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
    446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                                                ~~~~  ^
  ./Region2D.hh:549:14: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
    549 |                         && !this->DoesContainPoint (rHere.m_tnY, tnX))
        |                             ~~~~  ^
  ./Region2D.hh:556:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
    556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                       ~~~~  ^
  ./Region2D.hh:556:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
    556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                                                ~~~~  ^
  ./Region2D.hh:635:16: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
    635 |                         if (!(this->DoesContainPoint (rHere.m_tnY, tnX)
        |                               ~~~~  ^
  ./Region2D.hh:643:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
    643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                       ~~~~  ^
  ./Region2D.hh:643:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
    643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
        |                                                ~~~~  ^

The member functions `DoesContainPoint`, `Begin` and `End` are all
commented out in Region2D.hh, probably because the code was never
finished up properly. The member functions referencing them are also
never used, so comment those out too, using `#if 0`, `#endif` pairs.
Comment 1 Dimitry Andric freebsd_committer freebsd_triage 2024-10-06 09:51:49 UTC
Created attachment 254039 [details]
multimedia/mjpegtools: fix build with clang 19
Comment 2 commit-hook freebsd_committer freebsd_triage 2024-10-20 09:59:36 UTC
A commit in branch main references this bug:

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

commit 8cf728289caf3a06b225866707277d5ff170dff0
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-10-06 09:50:53 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-10-20 09:58:58 +0000

    multimedia/mjpegtools: fix build with clang 19

    Clang 19 has become more strict about errors in member functions, which
    results in errors building multimedia/mjpegtools:

      ./Region2D.hh:439:13: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        439 |                         || this->DoesContainPoint (rHere.m_tnY, tnX)))
            |                            ~~~~  ^
      ./Region2D.hh:446:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:446:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^
      ./Region2D.hh:549:14: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        549 |                         && !this->DoesContainPoint (rHere.m_tnY, tnX))
            |                             ~~~~  ^
      ./Region2D.hh:556:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:556:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^
      ./Region2D.hh:635:16: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        635 |                         if (!(this->DoesContainPoint (rHere.m_tnY, tnX)
            |                               ~~~~  ^
      ./Region2D.hh:643:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:643:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^

    The member functions `DoesContainPoint`, `Begin` and `End` are all
    commented out in Region2D.hh, probably because the code was never
    finished up properly. The member functions referencing them are also
    never used, so comment those out too, using `#if 0`, `#endif` pairs.

    PR:             281887
    Approved by:    maintainer timeout (2 weeks)
    MFH:            2024Q4

 .../files/patch-y4mdenoise_Region2D.hh (new)       | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)
Comment 3 commit-hook freebsd_committer freebsd_triage 2024-10-20 10:00:37 UTC
A commit in branch 2024Q4 references this bug:

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

commit 045150b2cda816ef0410ab12b6ce155369fd6dd4
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-10-06 09:50:53 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-10-20 09:59:39 +0000

    multimedia/mjpegtools: fix build with clang 19

    Clang 19 has become more strict about errors in member functions, which
    results in errors building multimedia/mjpegtools:

      ./Region2D.hh:439:13: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        439 |                         || this->DoesContainPoint (rHere.m_tnY, tnX)))
            |                            ~~~~  ^
      ./Region2D.hh:446:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:446:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        446 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^
      ./Region2D.hh:549:14: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        549 |                         && !this->DoesContainPoint (rHere.m_tnY, tnX))
            |                             ~~~~  ^
      ./Region2D.hh:556:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:556:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        556 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^
      ./Region2D.hh:635:16: error: no member named 'DoesContainPoint' in 'Region2D<INDEX, SIZE>'
        635 |                         if (!(this->DoesContainPoint (rHere.m_tnY, tnX)
            |                               ~~~~  ^
      ./Region2D.hh:643:22: error: no member named 'Begin' in 'Region2D<INDEX, SIZE>'
        643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                       ~~~~  ^
      ./Region2D.hh:643:47: error: no member named 'End' in 'Region2D<INDEX, SIZE>'
        643 |         for (itHere = this->Begin(); itHere != this->End(); ++itHere)
            |                                                ~~~~  ^

    The member functions `DoesContainPoint`, `Begin` and `End` are all
    commented out in Region2D.hh, probably because the code was never
    finished up properly. The member functions referencing them are also
    never used, so comment those out too, using `#if 0`, `#endif` pairs.

    PR:             281887
    Approved by:    maintainer timeout (2 weeks)
    MFH:            2024Q4

    (cherry picked from commit 8cf728289caf3a06b225866707277d5ff170dff0)

 .../files/patch-y4mdenoise_Region2D.hh (new)       | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)