Skip to content

Fix Eigen uninitialized warning that is hidden with local compiler pragmas to disable #5958

Closed

Description

@hjmjohnson

Activity

  1. blowekamp commented on Mar 17, 2026

    @blowekamp
    Member

    I am not sure what the ask is here.

    The changes in the third party library were already merged. The conflicts this cause will have to be resolved when ever the library is updated again. This is why the third party libraries should not be directly modified.

  2. hjmjohnson commented on Mar 17, 2026

    @hjmjohnson
    MemberAuthor

    @blowekamp Without this change, CI builds fail due to warnings in the CI build that originate from this code.

    I tried several approaches to suppress the build warnings without modifying the third-party directory, but I couldn't make that work.

    The changes in #5953 are definitely sub-optimal and may cause future maintenance issues.

    The issue is that all unrelated PRs were failing CI due to these new warnings. The fix in #5953 allows un-related work to continue without impediment until a more satisfying solution can be found that reverts #5953 and adds a better solution. I tried more than 10 different regular expression patterns in CMake/CTestCustom.cmake.in, but the warnings seemed to persist and cause failures in the arm based ci on linux that uses the GCC compiler.

    0001-COMP-Add-CDash-warning-and-error-exceptions-for-expe.patch

    From 6a9dedc3360ed167c146761b6ea273515eea0a17 Mon Sep 17 00:00:00 2001
    From: "Hans J. Johnson" <hans-johnson@uiowa.edu>
    Date: Tue, 17 Mar 2026 10:11:15 -0500
    Subject: [PATCH] COMP: Add CDash warning and error exceptions for expected
     test output
    
    Add Eigen3 ThirdParty warning suppression and expand
    CTEST_CUSTOM_ERROR_EXCEPTION to cover expected test output that
    CDash pattern-matches as errors (e.g. "--- ERROR ---" banners,
    itk::ExceptionObject traces, and diagnostic messages from negative
    test cases). These false positives cause CDash to report build
    errors even when all tests pass.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    ---
     CMake/CTestCustom.cmake.in | 30 ++++++++++++++++++++++++++++++
     1 file changed, 30 insertions(+)
    
    diff --git a/CMake/CTestCustom.cmake.in b/CMake/CTestCustom.cmake.in
    index 9f48346a85..be30879cfc 100644
    --- a/CMake/CTestCustom.cmake.in
    +++ b/CMake/CTestCustom.cmake.in
    @@ -78,6 +78,7 @@ set(CTEST_CUSTOM_WARNING_EXCEPTION
       "attempted multiple inclusion of file"
       "warning LNK4221: This object file does not define any previously undefined public symbols"
       ".*[/\\\\][Mm]odules[/\\\\][Tt]hird[Pp]arty[/\\\\][Dd][Ii][Cc][Oo][Mm][Pp]arser[/\\\\].*[Ww]arning.*"
    +  ".*[/\\\\][Mm]odules[/\\\\][Tt]hird[Pp]arty[/\\\\][Ee]igen3[/\\\\].*[Ww]arning.*"
       ".*[/\\\\][Mm]odules[/\\\\][Tt]hird[Pp]arty[/\\\\][Ee]xpat[/\\\\].*[Ww]arning.*"
       ".*[/\\\\][Mm]odules[/\\\\][Tt]hird[Pp]arty[/\\\\][Jj][Pp][Ee][Gg][/\\\\].*[Ww]arning.*"
       ".*[/\\\\][Mm]odules[/\\\\][Tt]hird[Pp]arty[/\\\\][Kk][Ww][Ss]ys[/\\\\].*[Ww]arning.*"
    @@ -126,9 +127,17 @@ set(CTEST_CUSTOM_WARNING_EXCEPTION
       # ignore third party GoogleTest warnings
       ".*Modules/ThirdParty/GoogleTest.*:warning:.*"
     
    +
       # ignore -Wunused-template warnings in third party DoubleConversion.
       ".*Modules/ThirdParty/DoubleConversion/.*warning:.*Wunused-template"
     
    +  # ignore some third party warnings
    +  ".*Modules/ThirdParty/.*warning:.*Wzero-as-null-pointer-constant.*"
    +  ".*Modules/ThirdParty/Eigen3/.*warning:.*Wallocator-wrappers.*"
    +  ".*Modules/ThirdParty/Eigen3/.*warning:.*Wmaybe-uninitialized.*"
    +  ".*libpng warning: sCAL: invalid unit.*"
    +  ".*Expect a warning:.*"
    +
       # CircleCI distcc warnings
       ".*WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED.*"
       "Warning: Permanently added.*to the list of known hosts"
    @@ -151,4 +160,25 @@ endif()
     set(CTEST_CUSTOM_ERROR_EXCEPTION
       # Emscripten
       ".*WARNING  root: emcc: cannot find library.*"
    +
    +  # ITK tests: expected exceptions are printed with an "--- ERROR ---" banner
    +  # and itk::ExceptionObject traces. These are normal output from negative
    +  # test cases that verify correct exception handling. CTest/CDash pattern-
    +  # matches these as errors, causing ci_completed_successfully to fail even
    +  # when all 3171/3171 tests pass.
    +  ".*Caught expected exception\\.?$"
    +  ".*Expected exception:.*"
    +  ".*--- ERROR ---.*"
    +  ".*itk::ExceptionObject.*"
    +  ".*Description: Method not applicable for deformable transform\\..*"
    +  ".*Description: Transform has not been set\\..*"
    +  ".*Description: Input parameter list size is not expected size\\..*"
    +  ".*Description: Input InputImage is required but not set\\..*"
    +  ".*Description: Seed1 is not within the input image!.*"
    +
    +  # Test output that CDash pattern-matches as errors but are expected
    +  # diagnostics from passing negative test cases
    +  ".*Test FAILED !!.*"
    +  ".*ITK ERROR:.*"
    +  ".*FAILED: FIXME MetaImage library.*"
       )
    -- 
    2.53.0
  3. self-assigned this
    on Mar 18, 2026
  4. hjmjohnson commented on Apr 1, 2026

    @hjmjohnson
    MemberAuthor

    Will investigate again at a later date to determine if there are more effective ways of suppressing warnings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

type:CompilerCompiler support or related warnings

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions