list(APPEND CTEST_CUSTOM_ERROR_MATCH
  "ERROR:")

list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
  "warning: cast from 'char\\*' to 'cmCursesWidget\\*' increases required alignment of target type" # Occurs when using Solaris's system libform
  "xtree.[0-9]+. : warning C4702: unreachable code"
  "warning LNK4221"
  "warning LNK4204" # Occurs by race condition with objects in small libs
  "variable .var_args[2]*. is used before its value is set"
  "warning: variable .__d[01]. was set but never used" # FD_ZERO on NVHPC
  "jobserver unavailable"
  "warning: \\(Long double usage is reported only once for each file"
  "warning: To disable this warning use"
  "could not be inlined"
  "libcm(curl|expat).*has no symbols"
  "cm(curl|expat).build/[^ ]*.o has no symbols"
  "not sorted slower link editing will result"
  "stl_deque.h:479"
  "Utilities.cmzlib."
  "Utilities.cmzstd."
  "Utilities.cmbzip2."
  "Source.CTest.Curl"
  "Source.CursesDialog.form"
  "Utilities.cmcurl"
  "Utilities.cmexpat."
  "Utilities.cmlibarchive"
  "warning: declaration of .single. shadows a global declaration"
  "/usr/include.*(warning|note).*shadowed declaration is here"
  "/usr/bin/ld.*warning.*-..*directory.name.*bin.*does not exist"
  "Redeclaration of .send..... with a different storage class specifier"
  "is not used for resolving any symbol"
  "Clock skew detected"
  "remark\\(1209"
  "remark: .*LOOP WAS VECTORIZED"
  "warning .980: wrong number of actual arguments to intrinsic function .std::basic_"
  "LINK : warning LNK4089: all references to.*ADVAPI32.dll.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*CRYPT32.dll.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*PSAPI.DLL.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*RPCRT4.dll.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*SHELL32.dll.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*USER32.dll.*discarded by /OPT:REF"
  "LINK : warning LNK4089: all references to.*ole32.dll.*discarded by /OPT:REF"
  "Warning.*: .*/Utilities/KWIML/test/test_int_format.h.* # Redundant preprocessing concatenation"
  "Warning: library was too large for page size.*"
  "Warning: public.*_archive_.*in module.*archive_*clashes with prior module.*archive_.*"
  "Warning: public.*BZ2_bz.*in module.*bzlib.*clashes with prior module.*bzlib.*"
  "Warning: public.*_archive.*clashes with prior module.*"
  "Warning: LINN32: Last line.*is less.*"
  "Warning: Olimit was exceeded on function.*"
  "Warning: To override Olimit for all functions in file.*"
  "Warning: Function .* can throw only the exceptions thrown by the function .* it overrides\\."
  "WarningMessagesDialog\\.cxx"
  "warning.*directory name.*CMake-Xcode.*/bin/.*does not exist.*"
  "stl_deque.h:1051"
  "Tests/CMakeLib/testCTestResourceSpec.cxx:.*warning: missing initializer for member.*cmCTestResourceSpec::.*" # GCC 4.8 disagrees with later compilers on C++11 initializer list conversion
  "(Lexer|Parser).*warning.*conversion.*may (alter its value|change the sign)"
  "(Lexer|Parser).*warning.*(statement is unreachable|will never be executed)"
  "(Lexer|Parser).*warning.*variable.*was set but never used"
  "LexerParser.*warning.*empty expression statement has no effect; remove unnecessary"
  "PGC-W-0095-Type cast required for this conversion.*ProcessUNIX.c"
  "[Qq]t([Cc]ore|[Gg]ui|[Ww]idgets).*warning.*conversion.*may alter its value"
  "warning:.*is.*very unsafe.*consider using.*"
  "warning:.*is.*misused, please use.*"
  "cmake.version.manifest.*manifest authoring warning.*Unrecognized Element"
  "cc-3968 CC: WARNING File.*" # "implicit" truncation by static_cast
  "ld: warning: directory not found for option .-(F|L)"
  "ld: warning .*/libgcc.a archive's cputype"
  "ld: warning: ignoring file .*/libgcc.a, file was built for archive which is not the architecture being linked"
  "ld: warning: in .*/libgcc.a, file is not of required architecture"
  "ld: warning: symbol .(deflate|inflate)_copyright. has differing sizes" # system libz and QtCore disagree
  "warning.*This version of Mac OS X is unsupported"
  "clang.*: warning: argument unused during compilation: .-g"
  "note: in expansion of macro" # diagnostic context note
  "note: expanded from macro" # diagnostic context note
  "cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*rand.*may return deterministic values"
  "cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*rand.*isn.*t random" # we do not do crypto
  "cm(StringCommand|CTestTestHandler)\\.cxx.*warning.*srand.*seed choices are.*poor" # we do not do crypto
  "cmFindPackageCommand.cxx.*: warning #177-D: parameter .* was declared but never referenced"
  "IPA warning: function.*multiply defined in"
  "LICENSE WARNING" # PGI license expiry.  Not useful in nightly testing.

  # Ignore compiler summary warning, assuming prior text has matched some
  # other warning expression:
  "[0-9,]+ warnings? generated." # Clang
  "compilation completed with warnings" # PGI
  "[0-9]+ Warning\\(s\\) detected" # SunPro

  # Ignore false positive on `cm::optional` usage from GCC
  "cmFileCommand.cxx:[0-9]*:[0-9]*: warning: '\\*\\(\\(void\\*\\)& tlsVerifyOpt \\+2\\)' may be used uninitialized in this function \\[-Wmaybe-uninitialized\\]"
  "cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: warning: '.*cm::optional<CxxModuleMapFormat>::_mem\\)\\)' may be used uninitialized \\[-Wmaybe-uninitialized\\]"
  "cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: note: '.*cm::optional<CxxModuleMapFormat>::_mem\\)\\)' was declared here"
  "cmGlobalNinjaGenerator.cxx:[0-9]*:[0-9]*: warning: '\\*\\(\\(void\\*\\)& modmap_fmt \\+4\\)' may be used uninitialized in this function \\[-Wmaybe-uninitialized\\]"

  # clang-analyzer exceptions
  "cmListFileLexer.c:[0-9]+:[0-9]+: warning: Array subscript is undefined"
  "jsoncpp/src/.*:[0-9]+:[0-9]+: warning: Value stored to .* is never read"
  "liblzma/common/index_encoder.c:[0-9]+:[0-9]+: warning: Value stored to '[^']+' during its initialization is never read"
  "liblzma/liblzma/common/index.c:[0-9]+:[0-9]+: warning: Access to field '[^']+' results in a dereference of a null pointer"
  "liblzma/simple/x86.c:[0-9]+:[0-9]+: warning: The result of the '<<' expression is undefined"
  "librhash/librhash/.*:[0-9]+:[0-9]+: warning: The left operand of '[^']+' is a garbage value"
  "libuv/src/.*:[0-9]+:[0-9]+: warning: 1st function call argument is an uninitialized value"
  "libuv/src/.*:[0-9]+:[0-9]+: warning: Dereference of null pointer"
  "libuv/src/.*:[0-9]+:[0-9]+: warning: The left operand of '[^']+' is a garbage value"
  "libuv/src/.*:[0-9]+:[0-9]+: warning: Value of '[^']+' was not checked and may be overwritten by function '[^']+'"
  "nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Access to field '[^']+' results in a dereference of a null pointer"
  "nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Dereference of null pointer"
  "nghttp2/lib/.*:[0-9]+:[0-9]+: warning: Value stored to '[^']+' is never read"
  "zstd/lib/.*:[0-9]+:[0-9]+: warning: Assigned value is garbage or undefined"
  "zstd/lib/.*:[0-9]+:[0-9]+: warning: Dereference of null pointer"
  "zstd/lib/.*:[0-9]+:[0-9]+: warning: The right operand of .* is a garbage value due to array index out of bounds"
  )

if(NOT "@CMAKE_GENERATOR@" MATCHES "Xcode")
  list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
    "XCode"
    )
endif ()

list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
  # Exclude kwsys files from coverage results. They are reported
  # (with better coverage results) on kwsys dashboards...
  "/Source/(cm|kw)sys/"

  # Exclude try_compile sources from coverage results:
  "/CMakeFiles/CMakeTmp/"

  # Exclude Qt source files from coverage results:
  "[A-Za-z]./[Qq]t/qt-.+-opensource-src"
  )

list(APPEND CTEST_CUSTOM_MEMCHECK_IGNORE
  kwsys.testProcess-10 # See Source/kwsys/CTestCustom.cmake.in
  )
