From bb02bdb44eb934ef9725d73b2f2a5e96465d2a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Tue, 2 Apr 2024 11:49:42 +0200 Subject: [PATCH 01/15] Trigger compilation errors on warnings for default + all + extra --- dependencies/O2PhysicsCompileFlags.cmake | 751 ++++++++++++++++++++++- 1 file changed, 749 insertions(+), 2 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index c29d8c4a996..8c910abaebc 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -11,13 +11,760 @@ include_guard() +# Set warnings for both gcc and clang. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-error \ --Werror=deprecated-enum-float-conversion \ +-Werror=NSObject-attribute \ +-Werror=address \ +-Werror=address-of-packed-member \ +-Werror=attribute-warning \ +-Werror=attributes \ +-Werror=bool-operation \ +-Werror=builtin-macro-redefined \ +-Werror=c++11-compat \ +-Werror=c++11-extensions \ +-Werror=c++14-extensions \ +-Werror=c++17-compat \ +-Werror=c++17-extensions \ +-Werror=c++20-compat \ +-Werror=c++20-extensions \ +-Werror=char-subscripts \ +-Werror=class-conversion \ +-Werror=comment \ +-Werror=conversion-null \ +-Werror=cpp \ +-Werror=dangling-else \ +-Werror=delete-incomplete \ +-Werror=delete-non-virtual-dtor \ +-Werror=deprecated \ +-Werror=deprecated-copy \ +-Werror=deprecated-declarations \ +-Werror=div-by-zero \ +-Werror=empty-body \ +-Werror=endif-labels \ +-Werror=enum-compare \ +-Werror=exceptions \ +-Werror=format-extra-args \ +-Werror=format-zero-length \ +-Werror=frame-address \ +-Werror=free-nonheap-object \ +-Werror=ignored-attributes \ +-Werror=ignored-qualifiers \ +-Werror=inaccessible-base \ +-Werror=infinite-recursion \ +-Werror=int-in-bool-context \ +-Werror=int-to-pointer-cast \ +-Werror=invalid-offsetof \ +-Werror=logical-not-parentheses \ +-Werror=main \ +-Werror=memset-transposed-args \ +-Werror=misleading-indentation \ +-Werror=mismatched-new-delete \ +-Werror=missing-field-initializers \ -Werror=narrowing \ +-Werror=noexcept-type \ +-Werror=nonnull \ +-Werror=odr \ -Werror=parentheses \ +-Werror=pessimizing-move \ +-Werror=pointer-compare \ +-Werror=pragmas \ +-Werror=psabi \ +-Werror=range-loop-construct \ +-Werror=redundant-move \ +-Werror=reorder \ -Werror=return-type \ +-Werror=sequence-point \ +-Werror=shift-count-negative \ +-Werror=shift-count-overflow \ +-Werror=sizeof-array-argument \ +-Werror=sizeof-array-div \ +-Werror=sizeof-pointer-div \ +-Werror=sizeof-pointer-memaccess \ +-Werror=string-compare \ +-Werror=switch \ +-Werror=switch-bool \ +-Werror=tautological-compare \ +-Werror=trigraphs \ -Werror=uninitialized \ --Werror=unused") +-Werror=unknown-pragmas \ +-Werror=unused \ +-Werror=unused-but-set-parameter \ +-Werror=unused-but-set-variable \ +-Werror=unused-function \ +-Werror=unused-label \ +-Werror=unused-parameter \ +-Werror=unused-result \ +-Werror=unused-value \ +-Werror=unused-variable \ +-Werror=varargs \ +-Werror=vexing-parse \ +") +# Add warnings for clang only. +if(APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ +-Werror=#pragma-messages \ +-Werror=#warnings \ +-Werror=CFString-literal \ +-Werror=CL4 \ +-Werror=IndependentClass-attribute \ +-Werror=absolute-value \ +-Werror=abstract-final-class \ +-Werror=address-of-temporary \ +-Werror=aix-compat \ +-Werror=align-mismatch \ +-Werror=alloca-with-align-alignof \ +-Werror=always-inline-coroutine \ +-Werror=ambiguous-delete \ +-Werror=ambiguous-ellipsis \ +-Werror=ambiguous-macro \ +-Werror=ambiguous-member-template \ +-Werror=ambiguous-reversed-operator \ +-Werror=analyzer-incompatible-plugin \ +-Werror=anon-enum-enum-conversion \ +-Werror=anonymous-pack-parens \ +-Werror=arc \ +-Werror=arc-bridge-casts-disallowed-in-nonarc \ +-Werror=arc-non-pod-memaccess \ +-Werror=arc-performSelector-leaks \ +-Werror=arc-retain-cycles \ +-Werror=arc-unsafe-retained-assign \ +-Werror=argument-outside-range \ +-Werror=argument-undefined-behaviour \ +-Werror=array-bounds \ +-Werror=array-parameter \ +-Werror=asm \ +-Werror=asm-operand-widths \ +-Werror=assume \ +-Werror=atimport-in-framework-header \ +-Werror=atomic-access \ +-Werror=atomic-alignment \ +-Werror=atomic-memory-ordering \ +-Werror=atomic-property-with-user-defined-accessor \ +-Werror=attribute-packed-for-bitfield \ +-Werror=auto-disable-vptr-sanitizer \ +-Werror=auto-storage-class \ +-Werror=auto-var-id \ +-Werror=availability \ +-Werror=avr-rtlib-linking-quirks \ +-Werror=backend-plugin \ +-Werror=backslash-newline-escape \ +-Werror=binding-in-condition \ +-Werror=bitfield-constant-conversion \ +-Werror=bitfield-width \ +-Werror=bitwise-conditional-parentheses \ +-Werror=bitwise-instead-of-logical \ +-Werror=bitwise-op-parentheses \ +-Werror=block-capture-autoreleasing \ +-Werror=bool-conversion \ +-Werror=bool-conversions \ +-Werror=braced-scalar-init \ +-Werror=branch-protection \ +-Werror=bridge-cast \ +-Werror=builtin-assume-aligned-alignment \ +-Werror=builtin-memcpy-chk-size \ +-Werror=builtin-requires-header \ +-Werror=c++0x-compat \ +-Werror=c++0x-extensions \ +-Werror=c++0x-narrowing \ +-Werror=c++11-compat-deprecated-writable-strings \ +-Werror=c++11-compat-pedantic \ +-Werror=c++11-inline-namespace \ +-Werror=c++11-narrowing \ +-Werror=c++17-compat-mangling \ +-Werror=c++17-compat-pedantic \ +-Werror=c++1y-extensions \ +-Werror=c++1z-compat \ +-Werror=c++1z-compat-mangling \ +-Werror=c++1z-extensions \ +-Werror=c++20-compat-pedantic \ +-Werror=c++2a-compat \ +-Werror=c++2a-compat-pedantic \ +-Werror=c++2a-extensions \ +-Werror=c++2b-extensions \ +-Werror=c2x-extensions \ +-Werror=c99-compat \ +-Werror=c99-designator \ +-Werror=c99-extensions \ +-Werror=call-to-pure-virtual-from-ctor-dtor \ +-Werror=called-once-parameter \ +-Werror=cast-calling-convention \ +-Werror=cast-of-sel-type \ +-Werror=cast-qual-unrelated \ +-Werror=clang-cl-pch \ +-Werror=class-varargs \ +-Werror=cmse-union-leak \ +-Werror=comments \ +-Werror=compare-distinct-pointer-types \ +-Werror=compound-token-split \ +-Werror=compound-token-split-by-macro \ +-Werror=concepts-ts-compat \ +-Werror=conditional-type-mismatch \ +-Werror=config-macros \ +-Werror=constant-conversion \ +-Werror=constant-evaluated \ +-Werror=constant-logical-operand \ +-Werror=constexpr-not-const \ +-Werror=conversion \ +-Werror=coroutine \ +-Werror=coroutine-missing-unhandled-exception \ +-Werror=ctu \ +-Werror=cuda-compat \ +-Werror=cxx-attribute-extension \ +-Werror=dangling \ +-Werror=dangling-field \ +-Werror=dangling-gsl \ +-Werror=dangling-initializer-list \ +-Werror=darwin-sdk-settings \ +-Werror=dealloc-in-category \ +-Werror=debug-compression-unavailable \ +-Werror=defaulted-function-deleted \ +-Werror=delegating-ctor-cycles \ +-Werror=delete-abstract-non-virtual-dtor \ +-Werror=delete-non-abstract-non-virtual-dtor \ +-Werror=deprecate-lax-vec-conv-all \ +-Werror=deprecated-altivec-src-compat \ +-Werror=deprecated-anon-enum-enum-conversion \ +-Werror=deprecated-array-compare \ +-Werror=deprecated-attributes \ +-Werror=deprecated-builtins \ +-Werror=deprecated-comma-subscript \ +-Werror=deprecated-copy-with-user-provided-copy \ +-Werror=deprecated-coroutine \ +-Werror=deprecated-enum-compare \ +-Werror=deprecated-enum-compare-conditional \ +-Werror=deprecated-enum-enum-conversion \ +-Werror=deprecated-enum-float-conversion \ +-Werror=deprecated-experimental-coroutine \ +-Werror=deprecated-increment-bool \ +-Werror=deprecated-non-prototype \ +-Werror=deprecated-objc-isa-usage \ +-Werror=deprecated-objc-pointer-introspection \ +-Werror=deprecated-objc-pointer-introspection-performSelector \ +-Werror=deprecated-pragma \ +-Werror=deprecated-register \ +-Werror=deprecated-static-analyzer-flag \ +-Werror=deprecated-type \ +-Werror=deprecated-volatile \ +-Werror=deprecated-writable-strings \ +-Werror=distributed-object-modifiers \ +-Werror=division-by-zero \ +-Werror=dll-attribute-on-redeclaration \ +-Werror=dllexport-explicit-instantiation-decl \ +-Werror=dllimport-static-field-def \ +-Werror=dtor-name \ +-Werror=dtor-typedef \ +-Werror=duplicate-decl-specifier \ +-Werror=duplicate-protocol \ +-Werror=dynamic-class-memaccess \ +-Werror=dynamic-exception-spec \ +-Werror=elaborated-enum-base \ +-Werror=elaborated-enum-class \ +-Werror=empty-decomposition \ +-Werror=empty-init-stmt \ +-Werror=encode-type \ +-Werror=enum-compare-conditional \ +-Werror=enum-compare-switch \ +-Werror=enum-conversion \ +-Werror=enum-enum-conversion \ +-Werror=enum-float-conversion \ +-Werror=enum-too-large \ +-Werror=excess-initializers \ +-Werror=expansion-to-defined \ +-Werror=explicit-initialize-call \ +-Werror=export-unnamed \ +-Werror=export-using-directive \ +-Werror=extern-c-compat \ +-Werror=extern-initializer \ +-Werror=extra-qualification \ +-Werror=extra-tokens \ +-Werror=final-dtor-non-final-class \ +-Werror=final-macro \ +-Werror=fixed-point-overflow \ +-Werror=flag-enum \ +-Werror=for-loop-analysis \ +-Werror=format \ +-Werror=format-insufficient-args \ +-Werror=format-invalid-specifier \ +-Werror=format-security \ +-Werror=format=2 \ +-Werror=fortify-source \ +-Werror=frame-larger-than \ +-Werror=frame-larger-than= \ +-Werror=framework-include-private-from-public \ +-Werror=function-def-in-objc-container \ +-Werror=function-multiversion \ +-Werror=fuse-ld-path \ +-Werror=gcc-compat \ +-Werror=global-isel \ +-Werror=gnu \ +-Werror=gnu-alignof-expression \ +-Werror=gnu-array-member-paren-init \ +-Werror=gnu-designator \ +-Werror=gnu-folding-constant \ +-Werror=gnu-inline-cpp-without-extern \ +-Werror=gnu-null-pointer-arithmetic \ +-Werror=gnu-static-float-init \ +-Werror=gnu-string-literal-operator-template \ +-Werror=gnu-variable-sized-type-not-at-end \ +-Werror=gpu-maybe-wrong-side \ +-Werror=header-guard \ +-Werror=hip-only \ +-Werror=hlsl-extensions \ +-Werror=ignored-availability-without-sdk-settings \ +-Werror=ignored-optimization-argument \ +-Werror=ignored-pragma-intrinsic \ +-Werror=ignored-pragmas \ +-Werror=ignored-reference-qualifiers \ +-Werror=implicit \ +-Werror=implicit-const-int-float-conversion \ +-Werror=implicit-conversion-floating-point-to-bool \ +-Werror=implicit-exception-spec-mismatch \ +-Werror=implicit-fixed-point-conversion \ +-Werror=implicit-float-conversion \ +-Werror=implicit-function-declaration \ +-Werror=implicit-int \ +-Werror=implicit-int-float-conversion \ +-Werror=implicitly-unsigned-literal \ +-Werror=include-next-absolute-path \ +-Werror=include-next-outside-header \ +-Werror=incompatible-exception-spec \ +-Werror=incompatible-function-pointer-types \ +-Werror=incompatible-library-redeclaration \ +-Werror=incompatible-ms-struct \ +-Werror=incompatible-pointer-types \ +-Werror=incompatible-pointer-types-discards-qualifiers \ +-Werror=incompatible-property-type \ +-Werror=incompatible-sysroot \ +-Werror=incomplete-framework-module-declaration \ +-Werror=incomplete-implementation \ +-Werror=incomplete-module \ +-Werror=incomplete-setjmp-declaration \ +-Werror=incomplete-umbrella \ +-Werror=inconsistent-dllimport \ +-Werror=inconsistent-missing-override \ +-Werror=increment-bool \ +-Werror=initializer-overrides \ +-Werror=injected-class-name \ +-Werror=inline-asm \ +-Werror=inline-namespace-reopened-noninline \ +-Werror=inline-new-delete \ +-Werror=instantiation-after-specialization \ +-Werror=int-conversion \ +-Werror=int-conversions \ +-Werror=int-to-void-pointer-cast \ +-Werror=integer-overflow \ +-Werror=interrupt-service-routine \ +-Werror=invalid-command-line-argument \ +-Werror=invalid-constexpr \ +-Werror=invalid-iboutlet \ +-Werror=invalid-initializer-from-system-header \ +-Werror=invalid-ios-deployment-target \ +-Werror=invalid-no-builtin-names \ +-Werror=invalid-noreturn \ +-Werror=invalid-or-nonexistent-directory \ +-Werror=invalid-partial-specialization \ +-Werror=invalid-pp-token \ +-Werror=invalid-source-encoding \ +-Werror=invalid-token-paste \ +-Werror=jump-seh-finally \ +-Werror=keyword-compat \ +-Werror=knr-promoted-parameter \ +-Werror=large-by-value-copy \ +-Werror=linker-warnings \ +-Werror=literal-conversion \ +-Werror=literal-range \ +-Werror=local-type-template-args \ +-Werror=logical-op-parentheses \ +-Werror=macro-redefined \ +-Werror=main-return-type \ +-Werror=malformed-warning-check \ +-Werror=many-braces-around-scalar-init \ +-Werror=max-unsigned-zero \ +-Werror=memsize-comparison \ +-Werror=microsoft \ +-Werror=microsoft-abstract \ +-Werror=microsoft-anon-tag \ +-Werror=microsoft-cast \ +-Werror=microsoft-const-init \ +-Werror=microsoft-default-arg-redefinition \ +-Werror=microsoft-drectve-section \ +-Werror=microsoft-enum-forward-reference \ +-Werror=microsoft-exception-spec \ +-Werror=microsoft-exists \ +-Werror=microsoft-explicit-constructor-call \ +-Werror=microsoft-extra-qualification \ +-Werror=microsoft-goto \ +-Werror=microsoft-inaccessible-base \ +-Werror=microsoft-include \ +-Werror=microsoft-mutable-reference \ +-Werror=microsoft-pure-definition \ +-Werror=microsoft-sealed \ +-Werror=microsoft-static-assert \ +-Werror=microsoft-template \ +-Werror=microsoft-template-shadow \ +-Werror=microsoft-union-member-reference \ +-Werror=microsoft-unqualified-friend \ +-Werror=microsoft-using-decl \ +-Werror=microsoft-void-pseudo-dtor \ +-Werror=misexpect \ +-Werror=mismatched-parameter-types \ +-Werror=mismatched-return-types \ +-Werror=mismatched-tags \ +-Werror=missing-braces \ +-Werror=missing-constinit \ +-Werror=missing-declarations \ +-Werror=missing-exception-spec \ +-Werror=missing-method-return-type \ +-Werror=missing-noescape \ +-Werror=missing-prototype-for-cc \ +-Werror=missing-selector-name \ +-Werror=missing-sysroot \ +-Werror=misspelled-assumption \ +-Werror=module-conflict \ +-Werror=module-file-config-mismatch \ +-Werror=module-file-extension \ +-Werror=module-import-in-extern-c \ +-Werror=modules-ambiguous-internal-linkage \ +-Werror=modules-import-nested-redundant \ +-Werror=move \ +-Werror=msvc-include \ +-Werror=msvc-not-found \ +-Werror=multichar \ +-Werror=multiple-move-vbase \ +-Werror=new-returns-null \ +-Werror=noderef \ +-Werror=non-c-typedef-for-linkage \ +-Werror=non-gcc \ +-Werror=non-literal-null-conversion \ +-Werror=non-pod-varargs \ +-Werror=non-power-of-two-alignment \ +-Werror=nonportable-include-path \ +-Werror=nonportable-vector-initialization \ +-Werror=nontrivial-memaccess \ +-Werror=nsconsumed-mismatch \ +-Werror=nsreturns-mismatch \ +-Werror=null-arithmetic \ +-Werror=null-character \ +-Werror=null-conversion \ +-Werror=null-dereference \ +-Werror=null-pointer-arithmetic \ +-Werror=null-pointer-subtraction \ +-Werror=nullability \ +-Werror=nullability-completeness \ +-Werror=nullability-completeness-on-arrays \ +-Werror=nullability-declspec \ +-Werror=nullability-inferred-on-nested-type \ +-Werror=objc-autosynthesis-property-ivar-name-match \ +-Werror=objc-bool-constant-conversion \ +-Werror=objc-boxing \ +-Werror=objc-circular-container \ +-Werror=objc-cocoa-api \ +-Werror=objc-designated-initializers \ +-Werror=objc-dictionary-duplicate-keys \ +-Werror=objc-flexible-array \ +-Werror=objc-forward-class-redefinition \ +-Werror=objc-literal-compare \ +-Werror=objc-literal-conversion \ +-Werror=objc-macro-redefinition \ +-Werror=objc-method-access \ +-Werror=objc-missing-super-calls \ +-Werror=objc-multiple-method-names \ +-Werror=objc-noncopy-retain-block-property \ +-Werror=objc-nonunified-exceptions \ +-Werror=objc-property-implementation \ +-Werror=objc-property-implicit-mismatch \ +-Werror=objc-property-matches-cocoa-ownership-rule \ +-Werror=objc-property-no-attribute \ +-Werror=objc-property-synthesis \ +-Werror=objc-protocol-method-implementation \ +-Werror=objc-protocol-property-synthesis \ +-Werror=objc-protocol-qualifiers \ +-Werror=objc-readonly-with-setter-property \ +-Werror=objc-redundant-api-use \ +-Werror=objc-redundant-literal-use \ +-Werror=objc-root-class \ +-Werror=objc-signed-char-bool \ +-Werror=objc-signed-char-bool-implicit-float-conversion \ +-Werror=objc-string-compare \ +-Werror=objc-string-concatenation \ +-Werror=objc-unsafe-perform-selector \ +-Werror=opencl-unsupported-rgba \ +-Werror=openmp \ +-Werror=openmp-51-extensions \ +-Werror=openmp-clauses \ +-Werror=openmp-loop-form \ +-Werror=openmp-mapping \ +-Werror=openmp-target \ +-Werror=option-ignored \ +-Werror=ordered-compare-function-pointers \ +-Werror=out-of-line-declaration \ +-Werror=out-of-scope-function \ +-Werror=overloaded-shift-op-parentheses \ +-Werror=overloaded-virtual \ +-Werror=override-init \ +-Werror=override-module \ +-Werror=overriding-t-option \ +-Werror=parentheses-equality \ +-Werror=partial-availability \ +-Werror=pass-failed \ +-Werror=pch-date-time \ +-Werror=pedantic-macros \ +-Werror=pointer-arith \ +-Werror=pointer-bool-conversion \ +-Werror=pointer-integer-compare \ +-Werror=pointer-sign \ +-Werror=pointer-to-enum-cast \ +-Werror=pointer-to-int-cast \ +-Werror=pointer-type-mismatch \ +-Werror=potentially-direct-selector \ +-Werror=potentially-evaluated-expression \ +-Werror=pragma-clang-attribute \ +-Werror=pragma-once-outside-header \ +-Werror=pragma-pack \ +-Werror=pragma-system-header-outside-header \ +-Werror=predefined-identifier-outside-function \ +-Werror=private-extern \ +-Werror=private-header \ +-Werror=private-module \ +-Werror=profile-instr-out-of-date \ +-Werror=profile-instr-unprofiled \ +-Werror=property-access-dot-syntax \ +-Werror=property-attribute-mismatch \ +-Werror=protocol \ +-Werror=protocol-property-synthesis-ambiguity \ +-Werror=qualified-void-return-type \ +-Werror=readonly-iboutlet-property \ +-Werror=receiver-expr \ +-Werror=receiver-forward-class \ +-Werror=redeclared-class-member \ +-Werror=redundant-consteval-if \ +-Werror=register \ +-Werror=reinterpret-base-class \ +-Werror=reorder-ctor \ +-Werror=reorder-init-list \ +-Werror=requires-super-attribute \ +-Werror=reserved-user-defined-literal \ +-Werror=restrict-expansion \ +-Werror=return-stack-address \ +-Werror=return-type-c-linkage \ +-Werror=rewrite-not-bool \ +-Werror=rtti \ +-Werror=sarif-format-unstable \ +-Werror=section \ +-Werror=self-assign \ +-Werror=self-assign-field \ +-Werror=self-assign-overloaded \ +-Werror=self-move \ +-Werror=semicolon-before-method-body \ +-Werror=sentinel \ +-Werror=serialized-diagnostics \ +-Werror=shadow \ +-Werror=shadow-all \ +-Werror=shadow-ivar \ +-Werror=shift-negative-value \ +-Werror=shift-op-parentheses \ +-Werror=shift-overflow \ +-Werror=signed-unsigned-wchar \ +-Werror=sizeof-array-decay \ +-Werror=slash-u-filename \ +-Werror=slh-asm-goto \ +-Werror=sometimes-uninitialized \ +-Werror=source-mgr \ +-Werror=source-uses-openmp \ +-Werror=stack-exhausted \ +-Werror=stack-protector \ +-Werror=static-float-init \ +-Werror=static-in-inline \ +-Werror=static-inline-explicit-instantiation \ +-Werror=static-local-in-inline \ +-Werror=static-self-init \ +-Werror=stdlibcxx-not-found \ +-Werror=strict-potentially-direct-selector \ +-Werror=strict-prototypes \ +-Werror=string-concatenation \ +-Werror=string-plus-char \ +-Werror=string-plus-int \ +-Werror=strlcpy-strlcat-size \ +-Werror=strncat-size \ +-Werror=suspicious-bzero \ +-Werror=suspicious-memaccess \ +-Werror=swift-name-attribute \ +-Werror=sync-fetch-and-nand-semantics-changed \ +-Werror=target-clones-mixed-specifiers \ +-Werror=tautological-bitwise-compare \ +-Werror=tautological-constant-compare \ +-Werror=tautological-constant-out-of-range-compare \ +-Werror=tautological-objc-bool-compare \ +-Werror=tautological-overlap-compare \ +-Werror=tautological-pointer-compare \ +-Werror=tautological-undefined-compare \ +-Werror=tcb-enforcement \ +-Werror=tentative-definition-incomplete-type \ +-Werror=type-safety \ +-Werror=typedef-redefinition \ +-Werror=typename-missing \ +-Werror=unable-to-open-stats-file \ +-Werror=unaligned-qualifier-implicit-cast \ +-Werror=unavailable-declarations \ +-Werror=undefined-bool-conversion \ +-Werror=undefined-inline \ +-Werror=undefined-internal \ +-Werror=undefined-var-template \ +-Werror=underaligned-exception-object \ +-Werror=unevaluated-expression \ +-Werror=unguarded-availability \ +-Werror=unguarded-availability-new \ +-Werror=unicode \ +-Werror=unicode-homoglyph \ +-Werror=unicode-whitespace \ +-Werror=unicode-zero-width \ +-Werror=uninitialized-const-reference \ +-Werror=unknown-argument \ +-Werror=unknown-assumption \ +-Werror=unknown-attributes \ +-Werror=unknown-cuda-version \ +-Werror=unknown-directives \ +-Werror=unknown-escape-sequence \ +-Werror=unknown-sanitizers \ +-Werror=unknown-warning-option \ +-Werror=unnamed-type-template-args \ +-Werror=unneeded-internal-declaration \ +-Werror=unqualified-std-cast-call \ +-Werror=unreachable-code \ +-Werror=unreachable-code-aggressive \ +-Werror=unreachable-code-generic-assoc \ +-Werror=unsequenced \ +-Werror=unsupported-abi \ +-Werror=unsupported-abs \ +-Werror=unsupported-availability-guard \ +-Werror=unsupported-cb \ +-Werror=unsupported-floating-point-opt \ +-Werror=unsupported-friend \ +-Werror=unsupported-gpopt \ +-Werror=unsupported-nan \ +-Werror=unsupported-target-opt \ +-Werror=unsupported-visibility \ +-Werror=unusable-partial-specialization \ +-Werror=unused-command-line-argument \ +-Werror=unused-comparison \ +-Werror=unused-const-variable \ +-Werror=unused-getter-return-value \ +-Werror=unused-lambda-capture \ +-Werror=unused-local-typedef \ +-Werror=unused-private-field \ +-Werror=unused-property-ivar \ +-Werror=unused-volatile-lvalue \ +-Werror=user-defined-literals \ +-Werror=user-defined-warnings \ +-Werror=variadic-macros \ +-Werror=vec-elem-size \ +-Werror=visibility \ +-Werror=void-pointer-to-enum-cast \ +-Werror=void-pointer-to-int-cast \ +-Werror=void-ptr-dereference \ +-Werror=wasm-exception-spec \ +-Werror=writable-strings \ +-Werror=write-strings \ +-Werror=xor-used-as-pow \ +") +# Add warnings for gcc only. +elseif(UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ +-Werror=aggressive-loop-optimizations \ +-Werror=analyzer-double-fclose \ +-Werror=analyzer-double-free \ +-Werror=analyzer-exposure-through-output-file \ +-Werror=analyzer-file-leak \ +-Werror=analyzer-free-of-non-heap \ +-Werror=analyzer-malloc-leak \ +-Werror=analyzer-mismatching-deallocation \ +-Werror=analyzer-null-argument \ +-Werror=analyzer-null-dereference \ +-Werror=analyzer-possible-null-argument \ +-Werror=analyzer-possible-null-dereference \ +-Werror=analyzer-shift-count-negative \ +-Werror=analyzer-shift-count-overflow \ +-Werror=analyzer-stale-setjmp-buffer \ +-Werror=analyzer-tainted-allocation-size \ +-Werror=analyzer-tainted-array-index \ +-Werror=analyzer-tainted-divisor \ +-Werror=analyzer-tainted-offset \ +-Werror=analyzer-tainted-size \ +-Werror=analyzer-unsafe-call-within-signal-handler \ +-Werror=analyzer-use-after-free \ +-Werror=analyzer-use-of-pointer-in-stale-stack-frame \ +-Werror=analyzer-use-of-uninitialized-value \ +-Werror=analyzer-write-to-const \ +-Werror=analyzer-write-to-string-literal \ +-Werror=array-bounds=1 \ +-Werror=array-compare \ +-Werror=array-parameter=2 \ +-Werror=bool-compare \ +-Werror=builtin-declaration-mismatch \ +-Werror=c++14-compat \ +-Werror=c++23-extensions \ +-Werror=cannot-profile \ +-Werror=cast-function-type \ +-Werror=catch-value=1 \ +-Werror=class-memaccess \ +-Werror=clobbered \ +-Werror=coverage-invalid-line-number \ +-Werror=coverage-mismatch \ +-Werror=dangling-pointer=2 \ +-Werror=format-contains-nul \ +-Werror=format-diag \ +-Werror=format-overflow=1 \ +-Werror=format-truncation=1 \ +-Werror=format=1 \ +-Werror=if-not-aligned \ +-Werror=implicit-fallthrough=3 \ +-Werror=inherited-variadic-ctor \ +-Werror=init-list-lifetime \ +-Werror=init-self \ +-Werror=interference-size \ +-Werror=invalid-memory-model \ +-Werror=literal-suffix \ +-Werror=lto-type-mismatch \ +-Werror=maybe-uninitialized \ +-Werror=memset-elt-size \ +-Werror=mismatched-dealloc \ +-Werror=missing-attributes \ +-Werror=missing-profile \ +-Werror=missing-requires \ +-Werror=missing-template-keyword \ +-Werror=multistatement-macros \ +-Werror=non-template-friend \ +-Werror=nonnull-compare \ +-Werror=openmp-simd \ +-Werror=overflow \ +-Werror=packed-bitfield-compat \ +-Werror=packed-not-aligned \ +-Werror=pmf-conversions \ +-Werror=prio-ctor-dtor \ +-Werror=restrict \ +-Werror=return-local-addr \ +-Werror=scalar-storage-order \ +-Werror=sized-deallocation \ +-Werror=strict-aliasing=3 \ +-Werror=strict-overflow=1 \ +-Werror=stringop-overflow=2 \ +-Werror=stringop-overread \ +-Werror=stringop-truncation \ +-Werror=subobject-linkage \ +-Werror=switch-outside-range \ +-Werror=switch-unreachable \ +-Werror=sync-nand \ +-Werror=terminate \ +-Werror=tsan \ +-Werror=type-limits \ +-Werror=unused-local-typedefs \ +-Werror=use-after-free=2 \ +-Werror=virtual-move-assign \ +-Werror=vla-parameter \ +-Werror=volatile-register-var \ +-Werror=zero-length-bounds \ +") +endif() IF (ENABLE_TIMETRACE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftime-trace") From 92e195a1e006efac093ed93a64a181a50e4177f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Mon, 22 Apr 2024 13:04:23 +0200 Subject: [PATCH 02/15] Enable extra warnings --- dependencies/O2PhysicsCompileFlags.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index 8c910abaebc..ab30fa4bc58 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -12,7 +12,7 @@ include_guard() # Set warnings for both gcc and clang. -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-error \ +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error \ -Werror=NSObject-attribute \ -Werror=address \ -Werror=address-of-packed-member \ From 5bdbc99fd749d7d8d3ea6a26bda4a0a4c9d490b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Wed, 24 Apr 2024 16:16:40 +0200 Subject: [PATCH 03/15] Remove C++ version compatibility flags --- dependencies/O2PhysicsCompileFlags.cmake | 31 ------------------------ 1 file changed, 31 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index ab30fa4bc58..c59a1ceabcd 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -20,13 +20,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error \ -Werror=attributes \ -Werror=bool-operation \ -Werror=builtin-macro-redefined \ --Werror=c++11-compat \ --Werror=c++11-extensions \ --Werror=c++14-extensions \ --Werror=c++17-compat \ --Werror=c++17-extensions \ --Werror=c++20-compat \ --Werror=c++20-extensions \ -Werror=char-subscripts \ -Werror=class-conversion \ -Werror=comment \ @@ -163,28 +156,6 @@ if(APPLE) -Werror=builtin-assume-aligned-alignment \ -Werror=builtin-memcpy-chk-size \ -Werror=builtin-requires-header \ --Werror=c++0x-compat \ --Werror=c++0x-extensions \ --Werror=c++0x-narrowing \ --Werror=c++11-compat-deprecated-writable-strings \ --Werror=c++11-compat-pedantic \ --Werror=c++11-inline-namespace \ --Werror=c++11-narrowing \ --Werror=c++17-compat-mangling \ --Werror=c++17-compat-pedantic \ --Werror=c++1y-extensions \ --Werror=c++1z-compat \ --Werror=c++1z-compat-mangling \ --Werror=c++1z-extensions \ --Werror=c++20-compat-pedantic \ --Werror=c++2a-compat \ --Werror=c++2a-compat-pedantic \ --Werror=c++2a-extensions \ --Werror=c++2b-extensions \ --Werror=c2x-extensions \ --Werror=c99-compat \ --Werror=c99-designator \ --Werror=c99-extensions \ -Werror=call-to-pure-virtual-from-ctor-dtor \ -Werror=called-once-parameter \ -Werror=cast-calling-convention \ @@ -701,8 +672,6 @@ elseif(UNIX) -Werror=array-parameter=2 \ -Werror=bool-compare \ -Werror=builtin-declaration-mismatch \ --Werror=c++14-compat \ --Werror=c++23-extensions \ -Werror=cannot-profile \ -Werror=cast-function-type \ -Werror=catch-value=1 \ From f82462c853c1db138de49bfde383faefcc56e4fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Tue, 30 Apr 2024 18:16:50 +0200 Subject: [PATCH 04/15] Treat warnings as errors only in CI tests. --- dependencies/O2PhysicsCompileFlags.cmake | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index c59a1ceabcd..05045499b98 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -11,8 +11,11 @@ include_guard() -# Set warnings for both gcc and clang. -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error \ +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") +# Treat warnings as errors in CI tests. +if(DEFINED ENV{ALIBUILD_O2PHYSICS_TESTS}) + # Set warnings for both gcc and clang. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -Werror=NSObject-attribute \ -Werror=address \ -Werror=address-of-packed-member \ @@ -92,9 +95,9 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error \ -Werror=varargs \ -Werror=vexing-parse \ ") -# Add warnings for clang only. -if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + # Add warnings for clang only. + if(APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -Werror=#pragma-messages \ -Werror=#warnings \ -Werror=CFString-literal \ @@ -638,9 +641,9 @@ if(APPLE) -Werror=write-strings \ -Werror=xor-used-as-pow \ ") -# Add warnings for gcc only. -elseif(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + # Add warnings for gcc only. + elseif(UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -Werror=aggressive-loop-optimizations \ -Werror=analyzer-double-fclose \ -Werror=analyzer-double-free \ @@ -733,6 +736,7 @@ elseif(UNIX) -Werror=volatile-register-var \ -Werror=zero-length-bounds \ ") + endif() endif() IF (ENABLE_TIMETRACE) From 4709bd0dc8b80cef3c961f17104a546c819f025f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Thu, 2 May 2024 13:13:22 +0200 Subject: [PATCH 05/15] Add O2PHYSICS_WARNINGS_AS_ERRORS --- cmake/O2PhysicsDefineOptions.cmake | 2 ++ dependencies/O2PhysicsCompileFlags.cmake | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/O2PhysicsDefineOptions.cmake b/cmake/O2PhysicsDefineOptions.cmake index d647fa2fde0..95868fe8904 100644 --- a/cmake/O2PhysicsDefineOptions.cmake +++ b/cmake/O2PhysicsDefineOptions.cmake @@ -18,4 +18,6 @@ function(o2physics_define_options) option(ENABLE_CASSERT "Enable asserts" OFF) option(ENABLE_UPGRADES "Enable detectors for upgrades" OFF) + + option(O2PHYSICS_WARNINGS_AS_ERRORS "Treat selected warnings as errors" OFF) endfunction() diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index 05045499b98..08e6043082c 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -12,8 +12,8 @@ include_guard() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") -# Treat warnings as errors in CI tests. -if(DEFINED ENV{ALIBUILD_O2PHYSICS_TESTS}) +# Treat warnings as errors. +if(O2PHYSICS_WARNINGS_AS_ERRORS) # Set warnings for both gcc and clang. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ -Werror=NSObject-attribute \ From edd1a2cfd32661b0b00c17cb577c5278fc32c5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Thu, 2 May 2024 13:13:54 +0200 Subject: [PATCH 06/15] Print O2PHYSICS_WARNINGS_AS_ERRORS --- dependencies/O2PhysicsCompileFlags.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index 08e6043082c..efcc1f2419d 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -12,6 +12,7 @@ include_guard() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") +message(STATUS "O2PHYSICS_WARNINGS_AS_ERRORS: ${O2PHYSICS_WARNINGS_AS_ERRORS}") # Treat warnings as errors. if(O2PHYSICS_WARNINGS_AS_ERRORS) # Set warnings for both gcc and clang. From 127412880f5480749662a500e85270231a16d7d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Sat, 22 Jun 2024 01:59:34 +0200 Subject: [PATCH 07/15] Generate flags from lists --- dependencies/O2PhysicsCompileFlags.cmake | 752 +---------------------- 1 file changed, 32 insertions(+), 720 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index efcc1f2419d..caa619f4d95 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -12,731 +12,43 @@ include_guard() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") + +set(O2PHYSICS_WARNINGS_COMMON "NSObject-attribute;address;address-of-packed-member;attribute-warning;attributes;bool-operation;builtin-macro-redefined;char-subscripts;class-conversion;comment;conversion-null;cpp;dangling-else;delete-incomplete;delete-non-virtual-dtor;deprecated;deprecated-copy;deprecated-declarations;div-by-zero;empty-body;endif-labels;enum-compare;exceptions;format-extra-args;format-zero-length;frame-address;free-nonheap-object;ignored-attributes;ignored-qualifiers;inaccessible-base;infinite-recursion;int-in-bool-context;int-to-pointer-cast;invalid-offsetof;logical-not-parentheses;main;memset-transposed-args;misleading-indentation;mismatched-new-delete;missing-field-initializers;narrowing;noexcept-type;nonnull;odr;parentheses;pessimizing-move;pointer-compare;pragmas;psabi;range-loop-construct;redundant-move;reorder;return-type;sequence-point;shift-count-negative;shift-count-overflow;sign-compare;sizeof-array-argument;sizeof-array-div;sizeof-pointer-div;sizeof-pointer-memaccess;string-compare;switch;switch-bool;tautological-compare;trigraphs;uninitialized;unknown-pragmas;unused;unused-but-set-parameter;unused-but-set-variable;unused-function;unused-label;unused-parameter;unused-result;unused-value;unused-variable;varargs;vexing-parse") +set(O2PHYSICS_WARNINGS_APPLE "#pragma-messages;#warnings;CFString-literal;CL4;IndependentClass-attribute;absolute-value;abstract-final-class;address-of-temporary;aix-compat;align-mismatch;alloca-with-align-alignof;always-inline-coroutine;ambiguous-delete;ambiguous-ellipsis;ambiguous-macro;ambiguous-member-template;ambiguous-reversed-operator;analyzer-incompatible-plugin;anon-enum-enum-conversion;anonymous-pack-parens;arc;arc-bridge-casts-disallowed-in-nonarc;arc-non-pod-memaccess;arc-performSelector-leaks;arc-retain-cycles;arc-unsafe-retained-assign;argument-outside-range;argument-undefined-behaviour;array-bounds;array-parameter;asm;asm-operand-widths;assume;atimport-in-framework-header;atomic-access;atomic-alignment;atomic-memory-ordering;atomic-property-with-user-defined-accessor;attribute-packed-for-bitfield;auto-disable-vptr-sanitizer;auto-storage-class;auto-var-id;availability;avr-rtlib-linking-quirks;backend-plugin;backslash-newline-escape;binding-in-condition;bitfield-constant-conversion;bitfield-width;bitwise-conditional-parentheses;bitwise-instead-of-logical;bitwise-op-parentheses;block-capture-autoreleasing;bool-conversion;bool-conversions;braced-scalar-init;branch-protection;bridge-cast;builtin-assume-aligned-alignment;builtin-memcpy-chk-size;builtin-requires-header;call-to-pure-virtual-from-ctor-dtor;called-once-parameter;cast-calling-convention;cast-of-sel-type;cast-qual-unrelated;clang-cl-pch;class-varargs;cmse-union-leak;comments;compare-distinct-pointer-types;compound-token-split;compound-token-split-by-macro;concepts-ts-compat;conditional-type-mismatch;config-macros;constant-conversion;constant-evaluated;constant-logical-operand;constexpr-not-const;conversion;coroutine;coroutine-missing-unhandled-exception;ctu;cuda-compat;cxx-attribute-extension;dangling;dangling-field;dangling-gsl;dangling-initializer-list;darwin-sdk-settings;dealloc-in-category;debug-compression-unavailable;defaulted-function-deleted;delegating-ctor-cycles;delete-abstract-non-virtual-dtor;delete-non-abstract-non-virtual-dtor;deprecate-lax-vec-conv-all;deprecated-altivec-src-compat;deprecated-anon-enum-enum-conversion;deprecated-array-compare;deprecated-attributes;deprecated-builtins;deprecated-comma-subscript;deprecated-copy-with-user-provided-copy;deprecated-coroutine;deprecated-enum-compare;deprecated-enum-compare-conditional;deprecated-enum-enum-conversion;deprecated-enum-float-conversion;deprecated-experimental-coroutine;deprecated-increment-bool;deprecated-non-prototype;deprecated-objc-isa-usage;deprecated-objc-pointer-introspection;deprecated-objc-pointer-introspection-performSelector;deprecated-pragma;deprecated-register;deprecated-static-analyzer-flag;deprecated-type;deprecated-volatile;deprecated-writable-strings;distributed-object-modifiers;division-by-zero;dll-attribute-on-redeclaration;dllexport-explicit-instantiation-decl;dllimport-static-field-def;dtor-name;dtor-typedef;duplicate-decl-specifier;duplicate-protocol;dynamic-class-memaccess;dynamic-exception-spec;elaborated-enum-base;elaborated-enum-class;empty-decomposition;empty-init-stmt;encode-type;enum-compare-conditional;enum-compare-switch;enum-conversion;enum-enum-conversion;enum-float-conversion;enum-too-large;excess-initializers;expansion-to-defined;explicit-initialize-call;export-unnamed;export-using-directive;extern-c-compat;extern-initializer;extra-qualification;extra-tokens;final-dtor-non-final-class;final-macro;fixed-point-overflow;flag-enum;for-loop-analysis;format;format-insufficient-args;format-invalid-specifier;format-security;format=2;fortify-source;frame-larger-than;frame-larger-than=;framework-include-private-from-public;function-def-in-objc-container;function-multiversion;fuse-ld-path;gcc-compat;global-isel;gnu;gnu-alignof-expression;gnu-array-member-paren-init;gnu-designator;gnu-folding-constant;gnu-inline-cpp-without-extern;gnu-null-pointer-arithmetic;gnu-static-float-init;gnu-string-literal-operator-template;gnu-variable-sized-type-not-at-end;gpu-maybe-wrong-side;header-guard;hip-only;hlsl-extensions;ignored-availability-without-sdk-settings;ignored-optimization-argument;ignored-pragma-intrinsic;ignored-pragmas;ignored-reference-qualifiers;implicit;implicit-const-int-float-conversion;implicit-conversion-floating-point-to-bool;implicit-exception-spec-mismatch;implicit-fixed-point-conversion;implicit-float-conversion;implicit-function-declaration;implicit-int;implicit-int-float-conversion;implicitly-unsigned-literal;include-next-absolute-path;include-next-outside-header;incompatible-exception-spec;incompatible-function-pointer-types;incompatible-library-redeclaration;incompatible-ms-struct;incompatible-pointer-types;incompatible-pointer-types-discards-qualifiers;incompatible-property-type;incompatible-sysroot;incomplete-framework-module-declaration;incomplete-implementation;incomplete-module;incomplete-setjmp-declaration;incomplete-umbrella;inconsistent-dllimport;inconsistent-missing-override;increment-bool;initializer-overrides;injected-class-name;inline-asm;inline-namespace-reopened-noninline;inline-new-delete;instantiation-after-specialization;int-conversion;int-conversions;int-to-void-pointer-cast;integer-overflow;interrupt-service-routine;invalid-command-line-argument;invalid-constexpr;invalid-iboutlet;invalid-initializer-from-system-header;invalid-ios-deployment-target;invalid-no-builtin-names;invalid-noreturn;invalid-or-nonexistent-directory;invalid-partial-specialization;invalid-pp-token;invalid-source-encoding;invalid-token-paste;jump-seh-finally;keyword-compat;knr-promoted-parameter;large-by-value-copy;linker-warnings;literal-conversion;literal-range;local-type-template-args;logical-op-parentheses;macro-redefined;main-return-type;malformed-warning-check;many-braces-around-scalar-init;max-unsigned-zero;memsize-comparison;microsoft;microsoft-abstract;microsoft-anon-tag;microsoft-cast;microsoft-const-init;microsoft-default-arg-redefinition;microsoft-drectve-section;microsoft-enum-forward-reference;microsoft-exception-spec;microsoft-exists;microsoft-explicit-constructor-call;microsoft-extra-qualification;microsoft-goto;microsoft-inaccessible-base;microsoft-include;microsoft-mutable-reference;microsoft-pure-definition;microsoft-sealed;microsoft-static-assert;microsoft-template;microsoft-template-shadow;microsoft-union-member-reference;microsoft-unqualified-friend;microsoft-using-decl;microsoft-void-pseudo-dtor;misexpect;mismatched-parameter-types;mismatched-return-types;mismatched-tags;missing-braces;missing-constinit;missing-declarations;missing-exception-spec;missing-method-return-type;missing-noescape;missing-prototype-for-cc;missing-selector-name;missing-sysroot;misspelled-assumption;module-conflict;module-file-config-mismatch;module-file-extension;module-import-in-extern-c;modules-ambiguous-internal-linkage;modules-import-nested-redundant;move;msvc-include;msvc-not-found;multichar;multiple-move-vbase;new-returns-null;noderef;non-c-typedef-for-linkage;non-gcc;non-literal-null-conversion;non-pod-varargs;non-power-of-two-alignment;nonportable-include-path;nonportable-vector-initialization;nontrivial-memaccess;nsconsumed-mismatch;nsreturns-mismatch;null-arithmetic;null-character;null-conversion;null-dereference;null-pointer-arithmetic;null-pointer-subtraction;nullability;nullability-completeness;nullability-completeness-on-arrays;nullability-declspec;nullability-inferred-on-nested-type;objc-autosynthesis-property-ivar-name-match;objc-bool-constant-conversion;objc-boxing;objc-circular-container;objc-cocoa-api;objc-designated-initializers;objc-dictionary-duplicate-keys;objc-flexible-array;objc-forward-class-redefinition;objc-literal-compare;objc-literal-conversion;objc-macro-redefinition;objc-method-access;objc-missing-super-calls;objc-multiple-method-names;objc-noncopy-retain-block-property;objc-nonunified-exceptions;objc-property-implementation;objc-property-implicit-mismatch;objc-property-matches-cocoa-ownership-rule;objc-property-no-attribute;objc-property-synthesis;objc-protocol-method-implementation;objc-protocol-property-synthesis;objc-protocol-qualifiers;objc-readonly-with-setter-property;objc-redundant-api-use;objc-redundant-literal-use;objc-root-class;objc-signed-char-bool;objc-signed-char-bool-implicit-float-conversion;objc-string-compare;objc-string-concatenation;objc-unsafe-perform-selector;opencl-unsupported-rgba;openmp;openmp-51-extensions;openmp-clauses;openmp-loop-form;openmp-mapping;openmp-target;option-ignored;ordered-compare-function-pointers;out-of-line-declaration;out-of-scope-function;overloaded-shift-op-parentheses;overloaded-virtual;override-init;override-module;overriding-t-option;parentheses-equality;partial-availability;pass-failed;pch-date-time;pedantic-macros;pointer-arith;pointer-bool-conversion;pointer-integer-compare;pointer-sign;pointer-to-enum-cast;pointer-to-int-cast;pointer-type-mismatch;potentially-direct-selector;potentially-evaluated-expression;pragma-clang-attribute;pragma-once-outside-header;pragma-pack;pragma-system-header-outside-header;predefined-identifier-outside-function;private-extern;private-header;private-module;profile-instr-out-of-date;profile-instr-unprofiled;property-access-dot-syntax;property-attribute-mismatch;protocol;protocol-property-synthesis-ambiguity;qualified-void-return-type;readonly-iboutlet-property;receiver-expr;receiver-forward-class;redeclared-class-member;redundant-consteval-if;register;reinterpret-base-class;reorder-ctor;reorder-init-list;requires-super-attribute;reserved-user-defined-literal;restrict-expansion;return-stack-address;return-type-c-linkage;rewrite-not-bool;rtti;sarif-format-unstable;section;self-assign;self-assign-field;self-assign-overloaded;self-move;semicolon-before-method-body;sentinel;serialized-diagnostics;shadow;shadow-all;shadow-ivar;shift-negative-value;shift-op-parentheses;shift-overflow;signed-unsigned-wchar;sizeof-array-decay;slash-u-filename;slh-asm-goto;sometimes-uninitialized;source-mgr;source-uses-openmp;stack-exhausted;stack-protector;static-float-init;static-in-inline;static-inline-explicit-instantiation;static-local-in-inline;static-self-init;stdlibcxx-not-found;strict-potentially-direct-selector;strict-prototypes;string-concatenation;string-plus-char;string-plus-int;strlcpy-strlcat-size;strncat-size;suspicious-bzero;suspicious-memaccess;swift-name-attribute;sync-fetch-and-nand-semantics-changed;target-clones-mixed-specifiers;tautological-bitwise-compare;tautological-constant-compare;tautological-constant-out-of-range-compare;tautological-objc-bool-compare;tautological-overlap-compare;tautological-pointer-compare;tautological-undefined-compare;tcb-enforcement;tentative-definition-incomplete-type;type-safety;typedef-redefinition;typename-missing;unable-to-open-stats-file;unaligned-qualifier-implicit-cast;unavailable-declarations;undefined-bool-conversion;undefined-inline;undefined-internal;undefined-var-template;underaligned-exception-object;unevaluated-expression;unguarded-availability;unguarded-availability-new;unicode;unicode-homoglyph;unicode-whitespace;unicode-zero-width;uninitialized-const-reference;unknown-argument;unknown-assumption;unknown-attributes;unknown-cuda-version;unknown-directives;unknown-escape-sequence;unknown-sanitizers;unknown-warning-option;unnamed-type-template-args;unneeded-internal-declaration;unqualified-std-cast-call;unreachable-code;unreachable-code-aggressive;unreachable-code-generic-assoc;unsequenced;unsupported-abi;unsupported-abs;unsupported-availability-guard;unsupported-cb;unsupported-floating-point-opt;unsupported-friend;unsupported-gpopt;unsupported-nan;unsupported-target-opt;unsupported-visibility;unusable-partial-specialization;unused-command-line-argument;unused-comparison;unused-const-variable;unused-getter-return-value;unused-lambda-capture;unused-local-typedef;unused-private-field;unused-property-ivar;unused-volatile-lvalue;user-defined-literals;user-defined-warnings;variadic-macros;vec-elem-size;visibility;void-pointer-to-enum-cast;void-pointer-to-int-cast;void-ptr-dereference;wasm-exception-spec;writable-strings;write-strings;xor-used-as-pow") +set(O2PHYSICS_WARNINGS_UNIX "aggressive-loop-optimizations;analyzer-double-fclose;analyzer-double-free;analyzer-exposure-through-output-file;analyzer-file-leak;analyzer-free-of-non-heap;analyzer-malloc-leak;analyzer-mismatching-deallocation;analyzer-null-argument;analyzer-null-dereference;analyzer-possible-null-argument;analyzer-possible-null-dereference;analyzer-shift-count-negative;analyzer-shift-count-overflow;analyzer-stale-setjmp-buffer;analyzer-tainted-allocation-size;analyzer-tainted-array-index;analyzer-tainted-divisor;analyzer-tainted-offset;analyzer-tainted-size;analyzer-unsafe-call-within-signal-handler;analyzer-use-after-free;analyzer-use-of-pointer-in-stale-stack-frame;analyzer-use-of-uninitialized-value;analyzer-write-to-const;analyzer-write-to-string-literal;array-bounds=1;array-compare;array-parameter=2;bool-compare;builtin-declaration-mismatch;cannot-profile;cast-function-type;catch-value=1;class-memaccess;clobbered;coverage-invalid-line-number;coverage-mismatch;dangling-pointer=2;format-contains-nul;format-diag;format-overflow=1;format-truncation=1;format=1;if-not-aligned;implicit-fallthrough=3;inherited-variadic-ctor;init-list-lifetime;init-self;interference-size;invalid-memory-model;literal-suffix;lto-type-mismatch;maybe-uninitialized;memset-elt-size;mismatched-dealloc;missing-attributes;missing-profile;missing-requires;missing-template-keyword;multistatement-macros;non-template-friend;nonnull-compare;openmp-simd;overflow;packed-bitfield-compat;packed-not-aligned;pmf-conversions;prio-ctor-dtor;restrict;return-local-addr;scalar-storage-order;sized-deallocation;strict-aliasing=3;strict-overflow=1;stringop-overflow=2;stringop-overread;stringop-truncation;subobject-linkage;switch-outside-range;switch-unreachable;sync-nand;terminate;tsan;type-limits;unused-local-typedefs;use-after-free=2;virtual-move-assign;vla-parameter;volatile-register-var;zero-length-bounds") + +function(o2_build_warning_flags) + cmake_parse_arguments(PARSE_ARGV 0 A "" "PREFIX;OUTPUTVARNAME" "WARNINGS") + if(A_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "Unexpected unparsed arguments: ${A_UNPARSED_ARGUMENTS}") + endif() + list(TRANSFORM A_WARNINGS STRIP) + list(TRANSFORM A_WARNINGS PREPEND ${A_PREFIX}) + string(JOIN " " OUTPUT ${A_WARNINGS}) + set(${A_OUTPUTVARNAME} ${OUTPUT} PARENT_SCOPE) +endfunction() + message(STATUS "O2PHYSICS_WARNINGS_AS_ERRORS: ${O2PHYSICS_WARNINGS_AS_ERRORS}") + # Treat warnings as errors. if(O2PHYSICS_WARNINGS_AS_ERRORS) - # Set warnings for both gcc and clang. - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ --Werror=NSObject-attribute \ --Werror=address \ --Werror=address-of-packed-member \ --Werror=attribute-warning \ --Werror=attributes \ --Werror=bool-operation \ --Werror=builtin-macro-redefined \ --Werror=char-subscripts \ --Werror=class-conversion \ --Werror=comment \ --Werror=conversion-null \ --Werror=cpp \ --Werror=dangling-else \ --Werror=delete-incomplete \ --Werror=delete-non-virtual-dtor \ --Werror=deprecated \ --Werror=deprecated-copy \ --Werror=deprecated-declarations \ --Werror=div-by-zero \ --Werror=empty-body \ --Werror=endif-labels \ --Werror=enum-compare \ --Werror=exceptions \ --Werror=format-extra-args \ --Werror=format-zero-length \ --Werror=frame-address \ --Werror=free-nonheap-object \ --Werror=ignored-attributes \ --Werror=ignored-qualifiers \ --Werror=inaccessible-base \ --Werror=infinite-recursion \ --Werror=int-in-bool-context \ --Werror=int-to-pointer-cast \ --Werror=invalid-offsetof \ --Werror=logical-not-parentheses \ --Werror=main \ --Werror=memset-transposed-args \ --Werror=misleading-indentation \ --Werror=mismatched-new-delete \ --Werror=missing-field-initializers \ --Werror=narrowing \ --Werror=noexcept-type \ --Werror=nonnull \ --Werror=odr \ --Werror=parentheses \ --Werror=pessimizing-move \ --Werror=pointer-compare \ --Werror=pragmas \ --Werror=psabi \ --Werror=range-loop-construct \ --Werror=redundant-move \ --Werror=reorder \ --Werror=return-type \ --Werror=sequence-point \ --Werror=shift-count-negative \ --Werror=shift-count-overflow \ --Werror=sizeof-array-argument \ --Werror=sizeof-array-div \ --Werror=sizeof-pointer-div \ --Werror=sizeof-pointer-memaccess \ --Werror=string-compare \ --Werror=switch \ --Werror=switch-bool \ --Werror=tautological-compare \ --Werror=trigraphs \ --Werror=uninitialized \ --Werror=unknown-pragmas \ --Werror=unused \ --Werror=unused-but-set-parameter \ --Werror=unused-but-set-variable \ --Werror=unused-function \ --Werror=unused-label \ --Werror=unused-parameter \ --Werror=unused-result \ --Werror=unused-value \ --Werror=unused-variable \ --Werror=varargs \ --Werror=vexing-parse \ -") - # Add warnings for clang only. + # Add warnings for both GCC and Clang. + o2_build_warning_flags(PREFIX "-Werror=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_COMMON + WARNINGS ${O2PHYSICS_WARNINGS_COMMON}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_COMMON}") if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ --Werror=#pragma-messages \ --Werror=#warnings \ --Werror=CFString-literal \ --Werror=CL4 \ --Werror=IndependentClass-attribute \ --Werror=absolute-value \ --Werror=abstract-final-class \ --Werror=address-of-temporary \ --Werror=aix-compat \ --Werror=align-mismatch \ --Werror=alloca-with-align-alignof \ --Werror=always-inline-coroutine \ --Werror=ambiguous-delete \ --Werror=ambiguous-ellipsis \ --Werror=ambiguous-macro \ --Werror=ambiguous-member-template \ --Werror=ambiguous-reversed-operator \ --Werror=analyzer-incompatible-plugin \ --Werror=anon-enum-enum-conversion \ --Werror=anonymous-pack-parens \ --Werror=arc \ --Werror=arc-bridge-casts-disallowed-in-nonarc \ --Werror=arc-non-pod-memaccess \ --Werror=arc-performSelector-leaks \ --Werror=arc-retain-cycles \ --Werror=arc-unsafe-retained-assign \ --Werror=argument-outside-range \ --Werror=argument-undefined-behaviour \ --Werror=array-bounds \ --Werror=array-parameter \ --Werror=asm \ --Werror=asm-operand-widths \ --Werror=assume \ --Werror=atimport-in-framework-header \ --Werror=atomic-access \ --Werror=atomic-alignment \ --Werror=atomic-memory-ordering \ --Werror=atomic-property-with-user-defined-accessor \ --Werror=attribute-packed-for-bitfield \ --Werror=auto-disable-vptr-sanitizer \ --Werror=auto-storage-class \ --Werror=auto-var-id \ --Werror=availability \ --Werror=avr-rtlib-linking-quirks \ --Werror=backend-plugin \ --Werror=backslash-newline-escape \ --Werror=binding-in-condition \ --Werror=bitfield-constant-conversion \ --Werror=bitfield-width \ --Werror=bitwise-conditional-parentheses \ --Werror=bitwise-instead-of-logical \ --Werror=bitwise-op-parentheses \ --Werror=block-capture-autoreleasing \ --Werror=bool-conversion \ --Werror=bool-conversions \ --Werror=braced-scalar-init \ --Werror=branch-protection \ --Werror=bridge-cast \ --Werror=builtin-assume-aligned-alignment \ --Werror=builtin-memcpy-chk-size \ --Werror=builtin-requires-header \ --Werror=call-to-pure-virtual-from-ctor-dtor \ --Werror=called-once-parameter \ --Werror=cast-calling-convention \ --Werror=cast-of-sel-type \ --Werror=cast-qual-unrelated \ --Werror=clang-cl-pch \ --Werror=class-varargs \ --Werror=cmse-union-leak \ --Werror=comments \ --Werror=compare-distinct-pointer-types \ --Werror=compound-token-split \ --Werror=compound-token-split-by-macro \ --Werror=concepts-ts-compat \ --Werror=conditional-type-mismatch \ --Werror=config-macros \ --Werror=constant-conversion \ --Werror=constant-evaluated \ --Werror=constant-logical-operand \ --Werror=constexpr-not-const \ --Werror=conversion \ --Werror=coroutine \ --Werror=coroutine-missing-unhandled-exception \ --Werror=ctu \ --Werror=cuda-compat \ --Werror=cxx-attribute-extension \ --Werror=dangling \ --Werror=dangling-field \ --Werror=dangling-gsl \ --Werror=dangling-initializer-list \ --Werror=darwin-sdk-settings \ --Werror=dealloc-in-category \ --Werror=debug-compression-unavailable \ --Werror=defaulted-function-deleted \ --Werror=delegating-ctor-cycles \ --Werror=delete-abstract-non-virtual-dtor \ --Werror=delete-non-abstract-non-virtual-dtor \ --Werror=deprecate-lax-vec-conv-all \ --Werror=deprecated-altivec-src-compat \ --Werror=deprecated-anon-enum-enum-conversion \ --Werror=deprecated-array-compare \ --Werror=deprecated-attributes \ --Werror=deprecated-builtins \ --Werror=deprecated-comma-subscript \ --Werror=deprecated-copy-with-user-provided-copy \ --Werror=deprecated-coroutine \ --Werror=deprecated-enum-compare \ --Werror=deprecated-enum-compare-conditional \ --Werror=deprecated-enum-enum-conversion \ --Werror=deprecated-enum-float-conversion \ --Werror=deprecated-experimental-coroutine \ --Werror=deprecated-increment-bool \ --Werror=deprecated-non-prototype \ --Werror=deprecated-objc-isa-usage \ --Werror=deprecated-objc-pointer-introspection \ --Werror=deprecated-objc-pointer-introspection-performSelector \ --Werror=deprecated-pragma \ --Werror=deprecated-register \ --Werror=deprecated-static-analyzer-flag \ --Werror=deprecated-type \ --Werror=deprecated-volatile \ --Werror=deprecated-writable-strings \ --Werror=distributed-object-modifiers \ --Werror=division-by-zero \ --Werror=dll-attribute-on-redeclaration \ --Werror=dllexport-explicit-instantiation-decl \ --Werror=dllimport-static-field-def \ --Werror=dtor-name \ --Werror=dtor-typedef \ --Werror=duplicate-decl-specifier \ --Werror=duplicate-protocol \ --Werror=dynamic-class-memaccess \ --Werror=dynamic-exception-spec \ --Werror=elaborated-enum-base \ --Werror=elaborated-enum-class \ --Werror=empty-decomposition \ --Werror=empty-init-stmt \ --Werror=encode-type \ --Werror=enum-compare-conditional \ --Werror=enum-compare-switch \ --Werror=enum-conversion \ --Werror=enum-enum-conversion \ --Werror=enum-float-conversion \ --Werror=enum-too-large \ --Werror=excess-initializers \ --Werror=expansion-to-defined \ --Werror=explicit-initialize-call \ --Werror=export-unnamed \ --Werror=export-using-directive \ --Werror=extern-c-compat \ --Werror=extern-initializer \ --Werror=extra-qualification \ --Werror=extra-tokens \ --Werror=final-dtor-non-final-class \ --Werror=final-macro \ --Werror=fixed-point-overflow \ --Werror=flag-enum \ --Werror=for-loop-analysis \ --Werror=format \ --Werror=format-insufficient-args \ --Werror=format-invalid-specifier \ --Werror=format-security \ --Werror=format=2 \ --Werror=fortify-source \ --Werror=frame-larger-than \ --Werror=frame-larger-than= \ --Werror=framework-include-private-from-public \ --Werror=function-def-in-objc-container \ --Werror=function-multiversion \ --Werror=fuse-ld-path \ --Werror=gcc-compat \ --Werror=global-isel \ --Werror=gnu \ --Werror=gnu-alignof-expression \ --Werror=gnu-array-member-paren-init \ --Werror=gnu-designator \ --Werror=gnu-folding-constant \ --Werror=gnu-inline-cpp-without-extern \ --Werror=gnu-null-pointer-arithmetic \ --Werror=gnu-static-float-init \ --Werror=gnu-string-literal-operator-template \ --Werror=gnu-variable-sized-type-not-at-end \ --Werror=gpu-maybe-wrong-side \ --Werror=header-guard \ --Werror=hip-only \ --Werror=hlsl-extensions \ --Werror=ignored-availability-without-sdk-settings \ --Werror=ignored-optimization-argument \ --Werror=ignored-pragma-intrinsic \ --Werror=ignored-pragmas \ --Werror=ignored-reference-qualifiers \ --Werror=implicit \ --Werror=implicit-const-int-float-conversion \ --Werror=implicit-conversion-floating-point-to-bool \ --Werror=implicit-exception-spec-mismatch \ --Werror=implicit-fixed-point-conversion \ --Werror=implicit-float-conversion \ --Werror=implicit-function-declaration \ --Werror=implicit-int \ --Werror=implicit-int-float-conversion \ --Werror=implicitly-unsigned-literal \ --Werror=include-next-absolute-path \ --Werror=include-next-outside-header \ --Werror=incompatible-exception-spec \ --Werror=incompatible-function-pointer-types \ --Werror=incompatible-library-redeclaration \ --Werror=incompatible-ms-struct \ --Werror=incompatible-pointer-types \ --Werror=incompatible-pointer-types-discards-qualifiers \ --Werror=incompatible-property-type \ --Werror=incompatible-sysroot \ --Werror=incomplete-framework-module-declaration \ --Werror=incomplete-implementation \ --Werror=incomplete-module \ --Werror=incomplete-setjmp-declaration \ --Werror=incomplete-umbrella \ --Werror=inconsistent-dllimport \ --Werror=inconsistent-missing-override \ --Werror=increment-bool \ --Werror=initializer-overrides \ --Werror=injected-class-name \ --Werror=inline-asm \ --Werror=inline-namespace-reopened-noninline \ --Werror=inline-new-delete \ --Werror=instantiation-after-specialization \ --Werror=int-conversion \ --Werror=int-conversions \ --Werror=int-to-void-pointer-cast \ --Werror=integer-overflow \ --Werror=interrupt-service-routine \ --Werror=invalid-command-line-argument \ --Werror=invalid-constexpr \ --Werror=invalid-iboutlet \ --Werror=invalid-initializer-from-system-header \ --Werror=invalid-ios-deployment-target \ --Werror=invalid-no-builtin-names \ --Werror=invalid-noreturn \ --Werror=invalid-or-nonexistent-directory \ --Werror=invalid-partial-specialization \ --Werror=invalid-pp-token \ --Werror=invalid-source-encoding \ --Werror=invalid-token-paste \ --Werror=jump-seh-finally \ --Werror=keyword-compat \ --Werror=knr-promoted-parameter \ --Werror=large-by-value-copy \ --Werror=linker-warnings \ --Werror=literal-conversion \ --Werror=literal-range \ --Werror=local-type-template-args \ --Werror=logical-op-parentheses \ --Werror=macro-redefined \ --Werror=main-return-type \ --Werror=malformed-warning-check \ --Werror=many-braces-around-scalar-init \ --Werror=max-unsigned-zero \ --Werror=memsize-comparison \ --Werror=microsoft \ --Werror=microsoft-abstract \ --Werror=microsoft-anon-tag \ --Werror=microsoft-cast \ --Werror=microsoft-const-init \ --Werror=microsoft-default-arg-redefinition \ --Werror=microsoft-drectve-section \ --Werror=microsoft-enum-forward-reference \ --Werror=microsoft-exception-spec \ --Werror=microsoft-exists \ --Werror=microsoft-explicit-constructor-call \ --Werror=microsoft-extra-qualification \ --Werror=microsoft-goto \ --Werror=microsoft-inaccessible-base \ --Werror=microsoft-include \ --Werror=microsoft-mutable-reference \ --Werror=microsoft-pure-definition \ --Werror=microsoft-sealed \ --Werror=microsoft-static-assert \ --Werror=microsoft-template \ --Werror=microsoft-template-shadow \ --Werror=microsoft-union-member-reference \ --Werror=microsoft-unqualified-friend \ --Werror=microsoft-using-decl \ --Werror=microsoft-void-pseudo-dtor \ --Werror=misexpect \ --Werror=mismatched-parameter-types \ --Werror=mismatched-return-types \ --Werror=mismatched-tags \ --Werror=missing-braces \ --Werror=missing-constinit \ --Werror=missing-declarations \ --Werror=missing-exception-spec \ --Werror=missing-method-return-type \ --Werror=missing-noescape \ --Werror=missing-prototype-for-cc \ --Werror=missing-selector-name \ --Werror=missing-sysroot \ --Werror=misspelled-assumption \ --Werror=module-conflict \ --Werror=module-file-config-mismatch \ --Werror=module-file-extension \ --Werror=module-import-in-extern-c \ --Werror=modules-ambiguous-internal-linkage \ --Werror=modules-import-nested-redundant \ --Werror=move \ --Werror=msvc-include \ --Werror=msvc-not-found \ --Werror=multichar \ --Werror=multiple-move-vbase \ --Werror=new-returns-null \ --Werror=noderef \ --Werror=non-c-typedef-for-linkage \ --Werror=non-gcc \ --Werror=non-literal-null-conversion \ --Werror=non-pod-varargs \ --Werror=non-power-of-two-alignment \ --Werror=nonportable-include-path \ --Werror=nonportable-vector-initialization \ --Werror=nontrivial-memaccess \ --Werror=nsconsumed-mismatch \ --Werror=nsreturns-mismatch \ --Werror=null-arithmetic \ --Werror=null-character \ --Werror=null-conversion \ --Werror=null-dereference \ --Werror=null-pointer-arithmetic \ --Werror=null-pointer-subtraction \ --Werror=nullability \ --Werror=nullability-completeness \ --Werror=nullability-completeness-on-arrays \ --Werror=nullability-declspec \ --Werror=nullability-inferred-on-nested-type \ --Werror=objc-autosynthesis-property-ivar-name-match \ --Werror=objc-bool-constant-conversion \ --Werror=objc-boxing \ --Werror=objc-circular-container \ --Werror=objc-cocoa-api \ --Werror=objc-designated-initializers \ --Werror=objc-dictionary-duplicate-keys \ --Werror=objc-flexible-array \ --Werror=objc-forward-class-redefinition \ --Werror=objc-literal-compare \ --Werror=objc-literal-conversion \ --Werror=objc-macro-redefinition \ --Werror=objc-method-access \ --Werror=objc-missing-super-calls \ --Werror=objc-multiple-method-names \ --Werror=objc-noncopy-retain-block-property \ --Werror=objc-nonunified-exceptions \ --Werror=objc-property-implementation \ --Werror=objc-property-implicit-mismatch \ --Werror=objc-property-matches-cocoa-ownership-rule \ --Werror=objc-property-no-attribute \ --Werror=objc-property-synthesis \ --Werror=objc-protocol-method-implementation \ --Werror=objc-protocol-property-synthesis \ --Werror=objc-protocol-qualifiers \ --Werror=objc-readonly-with-setter-property \ --Werror=objc-redundant-api-use \ --Werror=objc-redundant-literal-use \ --Werror=objc-root-class \ --Werror=objc-signed-char-bool \ --Werror=objc-signed-char-bool-implicit-float-conversion \ --Werror=objc-string-compare \ --Werror=objc-string-concatenation \ --Werror=objc-unsafe-perform-selector \ --Werror=opencl-unsupported-rgba \ --Werror=openmp \ --Werror=openmp-51-extensions \ --Werror=openmp-clauses \ --Werror=openmp-loop-form \ --Werror=openmp-mapping \ --Werror=openmp-target \ --Werror=option-ignored \ --Werror=ordered-compare-function-pointers \ --Werror=out-of-line-declaration \ --Werror=out-of-scope-function \ --Werror=overloaded-shift-op-parentheses \ --Werror=overloaded-virtual \ --Werror=override-init \ --Werror=override-module \ --Werror=overriding-t-option \ --Werror=parentheses-equality \ --Werror=partial-availability \ --Werror=pass-failed \ --Werror=pch-date-time \ --Werror=pedantic-macros \ --Werror=pointer-arith \ --Werror=pointer-bool-conversion \ --Werror=pointer-integer-compare \ --Werror=pointer-sign \ --Werror=pointer-to-enum-cast \ --Werror=pointer-to-int-cast \ --Werror=pointer-type-mismatch \ --Werror=potentially-direct-selector \ --Werror=potentially-evaluated-expression \ --Werror=pragma-clang-attribute \ --Werror=pragma-once-outside-header \ --Werror=pragma-pack \ --Werror=pragma-system-header-outside-header \ --Werror=predefined-identifier-outside-function \ --Werror=private-extern \ --Werror=private-header \ --Werror=private-module \ --Werror=profile-instr-out-of-date \ --Werror=profile-instr-unprofiled \ --Werror=property-access-dot-syntax \ --Werror=property-attribute-mismatch \ --Werror=protocol \ --Werror=protocol-property-synthesis-ambiguity \ --Werror=qualified-void-return-type \ --Werror=readonly-iboutlet-property \ --Werror=receiver-expr \ --Werror=receiver-forward-class \ --Werror=redeclared-class-member \ --Werror=redundant-consteval-if \ --Werror=register \ --Werror=reinterpret-base-class \ --Werror=reorder-ctor \ --Werror=reorder-init-list \ --Werror=requires-super-attribute \ --Werror=reserved-user-defined-literal \ --Werror=restrict-expansion \ --Werror=return-stack-address \ --Werror=return-type-c-linkage \ --Werror=rewrite-not-bool \ --Werror=rtti \ --Werror=sarif-format-unstable \ --Werror=section \ --Werror=self-assign \ --Werror=self-assign-field \ --Werror=self-assign-overloaded \ --Werror=self-move \ --Werror=semicolon-before-method-body \ --Werror=sentinel \ --Werror=serialized-diagnostics \ --Werror=shadow \ --Werror=shadow-all \ --Werror=shadow-ivar \ --Werror=shift-negative-value \ --Werror=shift-op-parentheses \ --Werror=shift-overflow \ --Werror=signed-unsigned-wchar \ --Werror=sizeof-array-decay \ --Werror=slash-u-filename \ --Werror=slh-asm-goto \ --Werror=sometimes-uninitialized \ --Werror=source-mgr \ --Werror=source-uses-openmp \ --Werror=stack-exhausted \ --Werror=stack-protector \ --Werror=static-float-init \ --Werror=static-in-inline \ --Werror=static-inline-explicit-instantiation \ --Werror=static-local-in-inline \ --Werror=static-self-init \ --Werror=stdlibcxx-not-found \ --Werror=strict-potentially-direct-selector \ --Werror=strict-prototypes \ --Werror=string-concatenation \ --Werror=string-plus-char \ --Werror=string-plus-int \ --Werror=strlcpy-strlcat-size \ --Werror=strncat-size \ --Werror=suspicious-bzero \ --Werror=suspicious-memaccess \ --Werror=swift-name-attribute \ --Werror=sync-fetch-and-nand-semantics-changed \ --Werror=target-clones-mixed-specifiers \ --Werror=tautological-bitwise-compare \ --Werror=tautological-constant-compare \ --Werror=tautological-constant-out-of-range-compare \ --Werror=tautological-objc-bool-compare \ --Werror=tautological-overlap-compare \ --Werror=tautological-pointer-compare \ --Werror=tautological-undefined-compare \ --Werror=tcb-enforcement \ --Werror=tentative-definition-incomplete-type \ --Werror=type-safety \ --Werror=typedef-redefinition \ --Werror=typename-missing \ --Werror=unable-to-open-stats-file \ --Werror=unaligned-qualifier-implicit-cast \ --Werror=unavailable-declarations \ --Werror=undefined-bool-conversion \ --Werror=undefined-inline \ --Werror=undefined-internal \ --Werror=undefined-var-template \ --Werror=underaligned-exception-object \ --Werror=unevaluated-expression \ --Werror=unguarded-availability \ --Werror=unguarded-availability-new \ --Werror=unicode \ --Werror=unicode-homoglyph \ --Werror=unicode-whitespace \ --Werror=unicode-zero-width \ --Werror=uninitialized-const-reference \ --Werror=unknown-argument \ --Werror=unknown-assumption \ --Werror=unknown-attributes \ --Werror=unknown-cuda-version \ --Werror=unknown-directives \ --Werror=unknown-escape-sequence \ --Werror=unknown-sanitizers \ --Werror=unknown-warning-option \ --Werror=unnamed-type-template-args \ --Werror=unneeded-internal-declaration \ --Werror=unqualified-std-cast-call \ --Werror=unreachable-code \ --Werror=unreachable-code-aggressive \ --Werror=unreachable-code-generic-assoc \ --Werror=unsequenced \ --Werror=unsupported-abi \ --Werror=unsupported-abs \ --Werror=unsupported-availability-guard \ --Werror=unsupported-cb \ --Werror=unsupported-floating-point-opt \ --Werror=unsupported-friend \ --Werror=unsupported-gpopt \ --Werror=unsupported-nan \ --Werror=unsupported-target-opt \ --Werror=unsupported-visibility \ --Werror=unusable-partial-specialization \ --Werror=unused-command-line-argument \ --Werror=unused-comparison \ --Werror=unused-const-variable \ --Werror=unused-getter-return-value \ --Werror=unused-lambda-capture \ --Werror=unused-local-typedef \ --Werror=unused-private-field \ --Werror=unused-property-ivar \ --Werror=unused-volatile-lvalue \ --Werror=user-defined-literals \ --Werror=user-defined-warnings \ --Werror=variadic-macros \ --Werror=vec-elem-size \ --Werror=visibility \ --Werror=void-pointer-to-enum-cast \ --Werror=void-pointer-to-int-cast \ --Werror=void-ptr-dereference \ --Werror=wasm-exception-spec \ --Werror=writable-strings \ --Werror=write-strings \ --Werror=xor-used-as-pow \ -") - # Add warnings for gcc only. + # Add warnings for Clang only. + o2_build_warning_flags(PREFIX "-Werror=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_APPLE + WARNINGS ${O2PHYSICS_WARNINGS_APPLE}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_APPLE}") elseif(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ --Werror=aggressive-loop-optimizations \ --Werror=analyzer-double-fclose \ --Werror=analyzer-double-free \ --Werror=analyzer-exposure-through-output-file \ --Werror=analyzer-file-leak \ --Werror=analyzer-free-of-non-heap \ --Werror=analyzer-malloc-leak \ --Werror=analyzer-mismatching-deallocation \ --Werror=analyzer-null-argument \ --Werror=analyzer-null-dereference \ --Werror=analyzer-possible-null-argument \ --Werror=analyzer-possible-null-dereference \ --Werror=analyzer-shift-count-negative \ --Werror=analyzer-shift-count-overflow \ --Werror=analyzer-stale-setjmp-buffer \ --Werror=analyzer-tainted-allocation-size \ --Werror=analyzer-tainted-array-index \ --Werror=analyzer-tainted-divisor \ --Werror=analyzer-tainted-offset \ --Werror=analyzer-tainted-size \ --Werror=analyzer-unsafe-call-within-signal-handler \ --Werror=analyzer-use-after-free \ --Werror=analyzer-use-of-pointer-in-stale-stack-frame \ --Werror=analyzer-use-of-uninitialized-value \ --Werror=analyzer-write-to-const \ --Werror=analyzer-write-to-string-literal \ --Werror=array-bounds=1 \ --Werror=array-compare \ --Werror=array-parameter=2 \ --Werror=bool-compare \ --Werror=builtin-declaration-mismatch \ --Werror=cannot-profile \ --Werror=cast-function-type \ --Werror=catch-value=1 \ --Werror=class-memaccess \ --Werror=clobbered \ --Werror=coverage-invalid-line-number \ --Werror=coverage-mismatch \ --Werror=dangling-pointer=2 \ --Werror=format-contains-nul \ --Werror=format-diag \ --Werror=format-overflow=1 \ --Werror=format-truncation=1 \ --Werror=format=1 \ --Werror=if-not-aligned \ --Werror=implicit-fallthrough=3 \ --Werror=inherited-variadic-ctor \ --Werror=init-list-lifetime \ --Werror=init-self \ --Werror=interference-size \ --Werror=invalid-memory-model \ --Werror=literal-suffix \ --Werror=lto-type-mismatch \ --Werror=maybe-uninitialized \ --Werror=memset-elt-size \ --Werror=mismatched-dealloc \ --Werror=missing-attributes \ --Werror=missing-profile \ --Werror=missing-requires \ --Werror=missing-template-keyword \ --Werror=multistatement-macros \ --Werror=non-template-friend \ --Werror=nonnull-compare \ --Werror=openmp-simd \ --Werror=overflow \ --Werror=packed-bitfield-compat \ --Werror=packed-not-aligned \ --Werror=pmf-conversions \ --Werror=prio-ctor-dtor \ --Werror=restrict \ --Werror=return-local-addr \ --Werror=scalar-storage-order \ --Werror=sized-deallocation \ --Werror=strict-aliasing=3 \ --Werror=strict-overflow=1 \ --Werror=stringop-overflow=2 \ --Werror=stringop-overread \ --Werror=stringop-truncation \ --Werror=subobject-linkage \ --Werror=switch-outside-range \ --Werror=switch-unreachable \ --Werror=sync-nand \ --Werror=terminate \ --Werror=tsan \ --Werror=type-limits \ --Werror=unused-local-typedefs \ --Werror=use-after-free=2 \ --Werror=virtual-move-assign \ --Werror=vla-parameter \ --Werror=volatile-register-var \ --Werror=zero-length-bounds \ -") + # Add warnings for GCC only. + o2_build_warning_flags(PREFIX "-Werror=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_UNIX + WARNINGS ${O2PHYSICS_WARNINGS_UNIX}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_UNIX}") endif() endif() From 019193893242c0e56d213edfc38093f362037914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Sat, 22 Jun 2024 02:11:58 +0200 Subject: [PATCH 08/15] Improve naming and comments --- dependencies/O2PhysicsCompileFlags.cmake | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index caa619f4d95..6f65a031c0e 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -13,10 +13,16 @@ include_guard() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") +# Enabled warnings supported by Clang and GCC set(O2PHYSICS_WARNINGS_COMMON "NSObject-attribute;address;address-of-packed-member;attribute-warning;attributes;bool-operation;builtin-macro-redefined;char-subscripts;class-conversion;comment;conversion-null;cpp;dangling-else;delete-incomplete;delete-non-virtual-dtor;deprecated;deprecated-copy;deprecated-declarations;div-by-zero;empty-body;endif-labels;enum-compare;exceptions;format-extra-args;format-zero-length;frame-address;free-nonheap-object;ignored-attributes;ignored-qualifiers;inaccessible-base;infinite-recursion;int-in-bool-context;int-to-pointer-cast;invalid-offsetof;logical-not-parentheses;main;memset-transposed-args;misleading-indentation;mismatched-new-delete;missing-field-initializers;narrowing;noexcept-type;nonnull;odr;parentheses;pessimizing-move;pointer-compare;pragmas;psabi;range-loop-construct;redundant-move;reorder;return-type;sequence-point;shift-count-negative;shift-count-overflow;sign-compare;sizeof-array-argument;sizeof-array-div;sizeof-pointer-div;sizeof-pointer-memaccess;string-compare;switch;switch-bool;tautological-compare;trigraphs;uninitialized;unknown-pragmas;unused;unused-but-set-parameter;unused-but-set-variable;unused-function;unused-label;unused-parameter;unused-result;unused-value;unused-variable;varargs;vexing-parse") -set(O2PHYSICS_WARNINGS_APPLE "#pragma-messages;#warnings;CFString-literal;CL4;IndependentClass-attribute;absolute-value;abstract-final-class;address-of-temporary;aix-compat;align-mismatch;alloca-with-align-alignof;always-inline-coroutine;ambiguous-delete;ambiguous-ellipsis;ambiguous-macro;ambiguous-member-template;ambiguous-reversed-operator;analyzer-incompatible-plugin;anon-enum-enum-conversion;anonymous-pack-parens;arc;arc-bridge-casts-disallowed-in-nonarc;arc-non-pod-memaccess;arc-performSelector-leaks;arc-retain-cycles;arc-unsafe-retained-assign;argument-outside-range;argument-undefined-behaviour;array-bounds;array-parameter;asm;asm-operand-widths;assume;atimport-in-framework-header;atomic-access;atomic-alignment;atomic-memory-ordering;atomic-property-with-user-defined-accessor;attribute-packed-for-bitfield;auto-disable-vptr-sanitizer;auto-storage-class;auto-var-id;availability;avr-rtlib-linking-quirks;backend-plugin;backslash-newline-escape;binding-in-condition;bitfield-constant-conversion;bitfield-width;bitwise-conditional-parentheses;bitwise-instead-of-logical;bitwise-op-parentheses;block-capture-autoreleasing;bool-conversion;bool-conversions;braced-scalar-init;branch-protection;bridge-cast;builtin-assume-aligned-alignment;builtin-memcpy-chk-size;builtin-requires-header;call-to-pure-virtual-from-ctor-dtor;called-once-parameter;cast-calling-convention;cast-of-sel-type;cast-qual-unrelated;clang-cl-pch;class-varargs;cmse-union-leak;comments;compare-distinct-pointer-types;compound-token-split;compound-token-split-by-macro;concepts-ts-compat;conditional-type-mismatch;config-macros;constant-conversion;constant-evaluated;constant-logical-operand;constexpr-not-const;conversion;coroutine;coroutine-missing-unhandled-exception;ctu;cuda-compat;cxx-attribute-extension;dangling;dangling-field;dangling-gsl;dangling-initializer-list;darwin-sdk-settings;dealloc-in-category;debug-compression-unavailable;defaulted-function-deleted;delegating-ctor-cycles;delete-abstract-non-virtual-dtor;delete-non-abstract-non-virtual-dtor;deprecate-lax-vec-conv-all;deprecated-altivec-src-compat;deprecated-anon-enum-enum-conversion;deprecated-array-compare;deprecated-attributes;deprecated-builtins;deprecated-comma-subscript;deprecated-copy-with-user-provided-copy;deprecated-coroutine;deprecated-enum-compare;deprecated-enum-compare-conditional;deprecated-enum-enum-conversion;deprecated-enum-float-conversion;deprecated-experimental-coroutine;deprecated-increment-bool;deprecated-non-prototype;deprecated-objc-isa-usage;deprecated-objc-pointer-introspection;deprecated-objc-pointer-introspection-performSelector;deprecated-pragma;deprecated-register;deprecated-static-analyzer-flag;deprecated-type;deprecated-volatile;deprecated-writable-strings;distributed-object-modifiers;division-by-zero;dll-attribute-on-redeclaration;dllexport-explicit-instantiation-decl;dllimport-static-field-def;dtor-name;dtor-typedef;duplicate-decl-specifier;duplicate-protocol;dynamic-class-memaccess;dynamic-exception-spec;elaborated-enum-base;elaborated-enum-class;empty-decomposition;empty-init-stmt;encode-type;enum-compare-conditional;enum-compare-switch;enum-conversion;enum-enum-conversion;enum-float-conversion;enum-too-large;excess-initializers;expansion-to-defined;explicit-initialize-call;export-unnamed;export-using-directive;extern-c-compat;extern-initializer;extra-qualification;extra-tokens;final-dtor-non-final-class;final-macro;fixed-point-overflow;flag-enum;for-loop-analysis;format;format-insufficient-args;format-invalid-specifier;format-security;format=2;fortify-source;frame-larger-than;frame-larger-than=;framework-include-private-from-public;function-def-in-objc-container;function-multiversion;fuse-ld-path;gcc-compat;global-isel;gnu;gnu-alignof-expression;gnu-array-member-paren-init;gnu-designator;gnu-folding-constant;gnu-inline-cpp-without-extern;gnu-null-pointer-arithmetic;gnu-static-float-init;gnu-string-literal-operator-template;gnu-variable-sized-type-not-at-end;gpu-maybe-wrong-side;header-guard;hip-only;hlsl-extensions;ignored-availability-without-sdk-settings;ignored-optimization-argument;ignored-pragma-intrinsic;ignored-pragmas;ignored-reference-qualifiers;implicit;implicit-const-int-float-conversion;implicit-conversion-floating-point-to-bool;implicit-exception-spec-mismatch;implicit-fixed-point-conversion;implicit-float-conversion;implicit-function-declaration;implicit-int;implicit-int-float-conversion;implicitly-unsigned-literal;include-next-absolute-path;include-next-outside-header;incompatible-exception-spec;incompatible-function-pointer-types;incompatible-library-redeclaration;incompatible-ms-struct;incompatible-pointer-types;incompatible-pointer-types-discards-qualifiers;incompatible-property-type;incompatible-sysroot;incomplete-framework-module-declaration;incomplete-implementation;incomplete-module;incomplete-setjmp-declaration;incomplete-umbrella;inconsistent-dllimport;inconsistent-missing-override;increment-bool;initializer-overrides;injected-class-name;inline-asm;inline-namespace-reopened-noninline;inline-new-delete;instantiation-after-specialization;int-conversion;int-conversions;int-to-void-pointer-cast;integer-overflow;interrupt-service-routine;invalid-command-line-argument;invalid-constexpr;invalid-iboutlet;invalid-initializer-from-system-header;invalid-ios-deployment-target;invalid-no-builtin-names;invalid-noreturn;invalid-or-nonexistent-directory;invalid-partial-specialization;invalid-pp-token;invalid-source-encoding;invalid-token-paste;jump-seh-finally;keyword-compat;knr-promoted-parameter;large-by-value-copy;linker-warnings;literal-conversion;literal-range;local-type-template-args;logical-op-parentheses;macro-redefined;main-return-type;malformed-warning-check;many-braces-around-scalar-init;max-unsigned-zero;memsize-comparison;microsoft;microsoft-abstract;microsoft-anon-tag;microsoft-cast;microsoft-const-init;microsoft-default-arg-redefinition;microsoft-drectve-section;microsoft-enum-forward-reference;microsoft-exception-spec;microsoft-exists;microsoft-explicit-constructor-call;microsoft-extra-qualification;microsoft-goto;microsoft-inaccessible-base;microsoft-include;microsoft-mutable-reference;microsoft-pure-definition;microsoft-sealed;microsoft-static-assert;microsoft-template;microsoft-template-shadow;microsoft-union-member-reference;microsoft-unqualified-friend;microsoft-using-decl;microsoft-void-pseudo-dtor;misexpect;mismatched-parameter-types;mismatched-return-types;mismatched-tags;missing-braces;missing-constinit;missing-declarations;missing-exception-spec;missing-method-return-type;missing-noescape;missing-prototype-for-cc;missing-selector-name;missing-sysroot;misspelled-assumption;module-conflict;module-file-config-mismatch;module-file-extension;module-import-in-extern-c;modules-ambiguous-internal-linkage;modules-import-nested-redundant;move;msvc-include;msvc-not-found;multichar;multiple-move-vbase;new-returns-null;noderef;non-c-typedef-for-linkage;non-gcc;non-literal-null-conversion;non-pod-varargs;non-power-of-two-alignment;nonportable-include-path;nonportable-vector-initialization;nontrivial-memaccess;nsconsumed-mismatch;nsreturns-mismatch;null-arithmetic;null-character;null-conversion;null-dereference;null-pointer-arithmetic;null-pointer-subtraction;nullability;nullability-completeness;nullability-completeness-on-arrays;nullability-declspec;nullability-inferred-on-nested-type;objc-autosynthesis-property-ivar-name-match;objc-bool-constant-conversion;objc-boxing;objc-circular-container;objc-cocoa-api;objc-designated-initializers;objc-dictionary-duplicate-keys;objc-flexible-array;objc-forward-class-redefinition;objc-literal-compare;objc-literal-conversion;objc-macro-redefinition;objc-method-access;objc-missing-super-calls;objc-multiple-method-names;objc-noncopy-retain-block-property;objc-nonunified-exceptions;objc-property-implementation;objc-property-implicit-mismatch;objc-property-matches-cocoa-ownership-rule;objc-property-no-attribute;objc-property-synthesis;objc-protocol-method-implementation;objc-protocol-property-synthesis;objc-protocol-qualifiers;objc-readonly-with-setter-property;objc-redundant-api-use;objc-redundant-literal-use;objc-root-class;objc-signed-char-bool;objc-signed-char-bool-implicit-float-conversion;objc-string-compare;objc-string-concatenation;objc-unsafe-perform-selector;opencl-unsupported-rgba;openmp;openmp-51-extensions;openmp-clauses;openmp-loop-form;openmp-mapping;openmp-target;option-ignored;ordered-compare-function-pointers;out-of-line-declaration;out-of-scope-function;overloaded-shift-op-parentheses;overloaded-virtual;override-init;override-module;overriding-t-option;parentheses-equality;partial-availability;pass-failed;pch-date-time;pedantic-macros;pointer-arith;pointer-bool-conversion;pointer-integer-compare;pointer-sign;pointer-to-enum-cast;pointer-to-int-cast;pointer-type-mismatch;potentially-direct-selector;potentially-evaluated-expression;pragma-clang-attribute;pragma-once-outside-header;pragma-pack;pragma-system-header-outside-header;predefined-identifier-outside-function;private-extern;private-header;private-module;profile-instr-out-of-date;profile-instr-unprofiled;property-access-dot-syntax;property-attribute-mismatch;protocol;protocol-property-synthesis-ambiguity;qualified-void-return-type;readonly-iboutlet-property;receiver-expr;receiver-forward-class;redeclared-class-member;redundant-consteval-if;register;reinterpret-base-class;reorder-ctor;reorder-init-list;requires-super-attribute;reserved-user-defined-literal;restrict-expansion;return-stack-address;return-type-c-linkage;rewrite-not-bool;rtti;sarif-format-unstable;section;self-assign;self-assign-field;self-assign-overloaded;self-move;semicolon-before-method-body;sentinel;serialized-diagnostics;shadow;shadow-all;shadow-ivar;shift-negative-value;shift-op-parentheses;shift-overflow;signed-unsigned-wchar;sizeof-array-decay;slash-u-filename;slh-asm-goto;sometimes-uninitialized;source-mgr;source-uses-openmp;stack-exhausted;stack-protector;static-float-init;static-in-inline;static-inline-explicit-instantiation;static-local-in-inline;static-self-init;stdlibcxx-not-found;strict-potentially-direct-selector;strict-prototypes;string-concatenation;string-plus-char;string-plus-int;strlcpy-strlcat-size;strncat-size;suspicious-bzero;suspicious-memaccess;swift-name-attribute;sync-fetch-and-nand-semantics-changed;target-clones-mixed-specifiers;tautological-bitwise-compare;tautological-constant-compare;tautological-constant-out-of-range-compare;tautological-objc-bool-compare;tautological-overlap-compare;tautological-pointer-compare;tautological-undefined-compare;tcb-enforcement;tentative-definition-incomplete-type;type-safety;typedef-redefinition;typename-missing;unable-to-open-stats-file;unaligned-qualifier-implicit-cast;unavailable-declarations;undefined-bool-conversion;undefined-inline;undefined-internal;undefined-var-template;underaligned-exception-object;unevaluated-expression;unguarded-availability;unguarded-availability-new;unicode;unicode-homoglyph;unicode-whitespace;unicode-zero-width;uninitialized-const-reference;unknown-argument;unknown-assumption;unknown-attributes;unknown-cuda-version;unknown-directives;unknown-escape-sequence;unknown-sanitizers;unknown-warning-option;unnamed-type-template-args;unneeded-internal-declaration;unqualified-std-cast-call;unreachable-code;unreachable-code-aggressive;unreachable-code-generic-assoc;unsequenced;unsupported-abi;unsupported-abs;unsupported-availability-guard;unsupported-cb;unsupported-floating-point-opt;unsupported-friend;unsupported-gpopt;unsupported-nan;unsupported-target-opt;unsupported-visibility;unusable-partial-specialization;unused-command-line-argument;unused-comparison;unused-const-variable;unused-getter-return-value;unused-lambda-capture;unused-local-typedef;unused-private-field;unused-property-ivar;unused-volatile-lvalue;user-defined-literals;user-defined-warnings;variadic-macros;vec-elem-size;visibility;void-pointer-to-enum-cast;void-pointer-to-int-cast;void-ptr-dereference;wasm-exception-spec;writable-strings;write-strings;xor-used-as-pow") -set(O2PHYSICS_WARNINGS_UNIX "aggressive-loop-optimizations;analyzer-double-fclose;analyzer-double-free;analyzer-exposure-through-output-file;analyzer-file-leak;analyzer-free-of-non-heap;analyzer-malloc-leak;analyzer-mismatching-deallocation;analyzer-null-argument;analyzer-null-dereference;analyzer-possible-null-argument;analyzer-possible-null-dereference;analyzer-shift-count-negative;analyzer-shift-count-overflow;analyzer-stale-setjmp-buffer;analyzer-tainted-allocation-size;analyzer-tainted-array-index;analyzer-tainted-divisor;analyzer-tainted-offset;analyzer-tainted-size;analyzer-unsafe-call-within-signal-handler;analyzer-use-after-free;analyzer-use-of-pointer-in-stale-stack-frame;analyzer-use-of-uninitialized-value;analyzer-write-to-const;analyzer-write-to-string-literal;array-bounds=1;array-compare;array-parameter=2;bool-compare;builtin-declaration-mismatch;cannot-profile;cast-function-type;catch-value=1;class-memaccess;clobbered;coverage-invalid-line-number;coverage-mismatch;dangling-pointer=2;format-contains-nul;format-diag;format-overflow=1;format-truncation=1;format=1;if-not-aligned;implicit-fallthrough=3;inherited-variadic-ctor;init-list-lifetime;init-self;interference-size;invalid-memory-model;literal-suffix;lto-type-mismatch;maybe-uninitialized;memset-elt-size;mismatched-dealloc;missing-attributes;missing-profile;missing-requires;missing-template-keyword;multistatement-macros;non-template-friend;nonnull-compare;openmp-simd;overflow;packed-bitfield-compat;packed-not-aligned;pmf-conversions;prio-ctor-dtor;restrict;return-local-addr;scalar-storage-order;sized-deallocation;strict-aliasing=3;strict-overflow=1;stringop-overflow=2;stringop-overread;stringop-truncation;subobject-linkage;switch-outside-range;switch-unreachable;sync-nand;terminate;tsan;type-limits;unused-local-typedefs;use-after-free=2;virtual-move-assign;vla-parameter;volatile-register-var;zero-length-bounds") +# Enabled warnings supported by Clang only +set(O2PHYSICS_WARNINGS_CLANG "#pragma-messages;#warnings;CFString-literal;CL4;IndependentClass-attribute;absolute-value;abstract-final-class;address-of-temporary;aix-compat;align-mismatch;alloca-with-align-alignof;always-inline-coroutine;ambiguous-delete;ambiguous-ellipsis;ambiguous-macro;ambiguous-member-template;ambiguous-reversed-operator;analyzer-incompatible-plugin;anon-enum-enum-conversion;anonymous-pack-parens;arc;arc-bridge-casts-disallowed-in-nonarc;arc-non-pod-memaccess;arc-performSelector-leaks;arc-retain-cycles;arc-unsafe-retained-assign;argument-outside-range;argument-undefined-behaviour;array-bounds;array-parameter;asm;asm-operand-widths;assume;atimport-in-framework-header;atomic-access;atomic-alignment;atomic-memory-ordering;atomic-property-with-user-defined-accessor;attribute-packed-for-bitfield;auto-disable-vptr-sanitizer;auto-storage-class;auto-var-id;availability;avr-rtlib-linking-quirks;backend-plugin;backslash-newline-escape;binding-in-condition;bitfield-constant-conversion;bitfield-width;bitwise-conditional-parentheses;bitwise-instead-of-logical;bitwise-op-parentheses;block-capture-autoreleasing;bool-conversion;bool-conversions;braced-scalar-init;branch-protection;bridge-cast;builtin-assume-aligned-alignment;builtin-memcpy-chk-size;builtin-requires-header;call-to-pure-virtual-from-ctor-dtor;called-once-parameter;cast-calling-convention;cast-of-sel-type;cast-qual-unrelated;clang-cl-pch;class-varargs;cmse-union-leak;comments;compare-distinct-pointer-types;compound-token-split;compound-token-split-by-macro;concepts-ts-compat;conditional-type-mismatch;config-macros;constant-conversion;constant-evaluated;constant-logical-operand;constexpr-not-const;conversion;coroutine;coroutine-missing-unhandled-exception;ctu;cuda-compat;cxx-attribute-extension;dangling;dangling-field;dangling-gsl;dangling-initializer-list;darwin-sdk-settings;dealloc-in-category;debug-compression-unavailable;defaulted-function-deleted;delegating-ctor-cycles;delete-abstract-non-virtual-dtor;delete-non-abstract-non-virtual-dtor;deprecate-lax-vec-conv-all;deprecated-altivec-src-compat;deprecated-anon-enum-enum-conversion;deprecated-array-compare;deprecated-attributes;deprecated-builtins;deprecated-comma-subscript;deprecated-copy-with-user-provided-copy;deprecated-coroutine;deprecated-enum-compare;deprecated-enum-compare-conditional;deprecated-enum-enum-conversion;deprecated-enum-float-conversion;deprecated-experimental-coroutine;deprecated-increment-bool;deprecated-non-prototype;deprecated-objc-isa-usage;deprecated-objc-pointer-introspection;deprecated-objc-pointer-introspection-performSelector;deprecated-pragma;deprecated-register;deprecated-static-analyzer-flag;deprecated-type;deprecated-volatile;deprecated-writable-strings;distributed-object-modifiers;division-by-zero;dll-attribute-on-redeclaration;dllexport-explicit-instantiation-decl;dllimport-static-field-def;dtor-name;dtor-typedef;duplicate-decl-specifier;duplicate-protocol;dynamic-class-memaccess;dynamic-exception-spec;elaborated-enum-base;elaborated-enum-class;empty-decomposition;empty-init-stmt;encode-type;enum-compare-conditional;enum-compare-switch;enum-conversion;enum-enum-conversion;enum-float-conversion;enum-too-large;excess-initializers;expansion-to-defined;explicit-initialize-call;export-unnamed;export-using-directive;extern-c-compat;extern-initializer;extra-qualification;extra-tokens;final-dtor-non-final-class;final-macro;fixed-point-overflow;flag-enum;for-loop-analysis;format;format-insufficient-args;format-invalid-specifier;format-security;format=2;fortify-source;frame-larger-than;frame-larger-than=;framework-include-private-from-public;function-def-in-objc-container;function-multiversion;fuse-ld-path;gcc-compat;global-isel;gnu;gnu-alignof-expression;gnu-array-member-paren-init;gnu-designator;gnu-folding-constant;gnu-inline-cpp-without-extern;gnu-null-pointer-arithmetic;gnu-static-float-init;gnu-string-literal-operator-template;gnu-variable-sized-type-not-at-end;gpu-maybe-wrong-side;header-guard;hip-only;hlsl-extensions;ignored-availability-without-sdk-settings;ignored-optimization-argument;ignored-pragma-intrinsic;ignored-pragmas;ignored-reference-qualifiers;implicit;implicit-const-int-float-conversion;implicit-conversion-floating-point-to-bool;implicit-exception-spec-mismatch;implicit-fixed-point-conversion;implicit-float-conversion;implicit-function-declaration;implicit-int;implicit-int-float-conversion;implicitly-unsigned-literal;include-next-absolute-path;include-next-outside-header;incompatible-exception-spec;incompatible-function-pointer-types;incompatible-library-redeclaration;incompatible-ms-struct;incompatible-pointer-types;incompatible-pointer-types-discards-qualifiers;incompatible-property-type;incompatible-sysroot;incomplete-framework-module-declaration;incomplete-implementation;incomplete-module;incomplete-setjmp-declaration;incomplete-umbrella;inconsistent-dllimport;inconsistent-missing-override;increment-bool;initializer-overrides;injected-class-name;inline-asm;inline-namespace-reopened-noninline;inline-new-delete;instantiation-after-specialization;int-conversion;int-conversions;int-to-void-pointer-cast;integer-overflow;interrupt-service-routine;invalid-command-line-argument;invalid-constexpr;invalid-iboutlet;invalid-initializer-from-system-header;invalid-ios-deployment-target;invalid-no-builtin-names;invalid-noreturn;invalid-or-nonexistent-directory;invalid-partial-specialization;invalid-pp-token;invalid-source-encoding;invalid-token-paste;jump-seh-finally;keyword-compat;knr-promoted-parameter;large-by-value-copy;linker-warnings;literal-conversion;literal-range;local-type-template-args;logical-op-parentheses;macro-redefined;main-return-type;malformed-warning-check;many-braces-around-scalar-init;max-unsigned-zero;memsize-comparison;microsoft;microsoft-abstract;microsoft-anon-tag;microsoft-cast;microsoft-const-init;microsoft-default-arg-redefinition;microsoft-drectve-section;microsoft-enum-forward-reference;microsoft-exception-spec;microsoft-exists;microsoft-explicit-constructor-call;microsoft-extra-qualification;microsoft-goto;microsoft-inaccessible-base;microsoft-include;microsoft-mutable-reference;microsoft-pure-definition;microsoft-sealed;microsoft-static-assert;microsoft-template;microsoft-template-shadow;microsoft-union-member-reference;microsoft-unqualified-friend;microsoft-using-decl;microsoft-void-pseudo-dtor;misexpect;mismatched-parameter-types;mismatched-return-types;mismatched-tags;missing-braces;missing-constinit;missing-declarations;missing-exception-spec;missing-method-return-type;missing-noescape;missing-prototype-for-cc;missing-selector-name;missing-sysroot;misspelled-assumption;module-conflict;module-file-config-mismatch;module-file-extension;module-import-in-extern-c;modules-ambiguous-internal-linkage;modules-import-nested-redundant;move;msvc-include;msvc-not-found;multichar;multiple-move-vbase;new-returns-null;noderef;non-c-typedef-for-linkage;non-gcc;non-literal-null-conversion;non-pod-varargs;non-power-of-two-alignment;nonportable-include-path;nonportable-vector-initialization;nontrivial-memaccess;nsconsumed-mismatch;nsreturns-mismatch;null-arithmetic;null-character;null-conversion;null-dereference;null-pointer-arithmetic;null-pointer-subtraction;nullability;nullability-completeness;nullability-completeness-on-arrays;nullability-declspec;nullability-inferred-on-nested-type;objc-autosynthesis-property-ivar-name-match;objc-bool-constant-conversion;objc-boxing;objc-circular-container;objc-cocoa-api;objc-designated-initializers;objc-dictionary-duplicate-keys;objc-flexible-array;objc-forward-class-redefinition;objc-literal-compare;objc-literal-conversion;objc-macro-redefinition;objc-method-access;objc-missing-super-calls;objc-multiple-method-names;objc-noncopy-retain-block-property;objc-nonunified-exceptions;objc-property-implementation;objc-property-implicit-mismatch;objc-property-matches-cocoa-ownership-rule;objc-property-no-attribute;objc-property-synthesis;objc-protocol-method-implementation;objc-protocol-property-synthesis;objc-protocol-qualifiers;objc-readonly-with-setter-property;objc-redundant-api-use;objc-redundant-literal-use;objc-root-class;objc-signed-char-bool;objc-signed-char-bool-implicit-float-conversion;objc-string-compare;objc-string-concatenation;objc-unsafe-perform-selector;opencl-unsupported-rgba;openmp;openmp-51-extensions;openmp-clauses;openmp-loop-form;openmp-mapping;openmp-target;option-ignored;ordered-compare-function-pointers;out-of-line-declaration;out-of-scope-function;overloaded-shift-op-parentheses;overloaded-virtual;override-init;override-module;overriding-t-option;parentheses-equality;partial-availability;pass-failed;pch-date-time;pedantic-macros;pointer-arith;pointer-bool-conversion;pointer-integer-compare;pointer-sign;pointer-to-enum-cast;pointer-to-int-cast;pointer-type-mismatch;potentially-direct-selector;potentially-evaluated-expression;pragma-clang-attribute;pragma-once-outside-header;pragma-pack;pragma-system-header-outside-header;predefined-identifier-outside-function;private-extern;private-header;private-module;profile-instr-out-of-date;profile-instr-unprofiled;property-access-dot-syntax;property-attribute-mismatch;protocol;protocol-property-synthesis-ambiguity;qualified-void-return-type;readonly-iboutlet-property;receiver-expr;receiver-forward-class;redeclared-class-member;redundant-consteval-if;register;reinterpret-base-class;reorder-ctor;reorder-init-list;requires-super-attribute;reserved-user-defined-literal;restrict-expansion;return-stack-address;return-type-c-linkage;rewrite-not-bool;rtti;sarif-format-unstable;section;self-assign;self-assign-field;self-assign-overloaded;self-move;semicolon-before-method-body;sentinel;serialized-diagnostics;shadow;shadow-all;shadow-ivar;shift-negative-value;shift-op-parentheses;shift-overflow;signed-unsigned-wchar;sizeof-array-decay;slash-u-filename;slh-asm-goto;sometimes-uninitialized;source-mgr;source-uses-openmp;stack-exhausted;stack-protector;static-float-init;static-in-inline;static-inline-explicit-instantiation;static-local-in-inline;static-self-init;stdlibcxx-not-found;strict-potentially-direct-selector;strict-prototypes;string-concatenation;string-plus-char;string-plus-int;strlcpy-strlcat-size;strncat-size;suspicious-bzero;suspicious-memaccess;swift-name-attribute;sync-fetch-and-nand-semantics-changed;target-clones-mixed-specifiers;tautological-bitwise-compare;tautological-constant-compare;tautological-constant-out-of-range-compare;tautological-objc-bool-compare;tautological-overlap-compare;tautological-pointer-compare;tautological-undefined-compare;tcb-enforcement;tentative-definition-incomplete-type;type-safety;typedef-redefinition;typename-missing;unable-to-open-stats-file;unaligned-qualifier-implicit-cast;unavailable-declarations;undefined-bool-conversion;undefined-inline;undefined-internal;undefined-var-template;underaligned-exception-object;unevaluated-expression;unguarded-availability;unguarded-availability-new;unicode;unicode-homoglyph;unicode-whitespace;unicode-zero-width;uninitialized-const-reference;unknown-argument;unknown-assumption;unknown-attributes;unknown-cuda-version;unknown-directives;unknown-escape-sequence;unknown-sanitizers;unknown-warning-option;unnamed-type-template-args;unneeded-internal-declaration;unqualified-std-cast-call;unreachable-code;unreachable-code-aggressive;unreachable-code-generic-assoc;unsequenced;unsupported-abi;unsupported-abs;unsupported-availability-guard;unsupported-cb;unsupported-floating-point-opt;unsupported-friend;unsupported-gpopt;unsupported-nan;unsupported-target-opt;unsupported-visibility;unusable-partial-specialization;unused-command-line-argument;unused-comparison;unused-const-variable;unused-getter-return-value;unused-lambda-capture;unused-local-typedef;unused-private-field;unused-property-ivar;unused-volatile-lvalue;user-defined-literals;user-defined-warnings;variadic-macros;vec-elem-size;visibility;void-pointer-to-enum-cast;void-pointer-to-int-cast;void-ptr-dereference;wasm-exception-spec;writable-strings;write-strings;xor-used-as-pow") + +# Enabled warnings supported by GCC only +set(O2PHYSICS_WARNINGS_GCC "aggressive-loop-optimizations;analyzer-double-fclose;analyzer-double-free;analyzer-exposure-through-output-file;analyzer-file-leak;analyzer-free-of-non-heap;analyzer-malloc-leak;analyzer-mismatching-deallocation;analyzer-null-argument;analyzer-null-dereference;analyzer-possible-null-argument;analyzer-possible-null-dereference;analyzer-shift-count-negative;analyzer-shift-count-overflow;analyzer-stale-setjmp-buffer;analyzer-tainted-allocation-size;analyzer-tainted-array-index;analyzer-tainted-divisor;analyzer-tainted-offset;analyzer-tainted-size;analyzer-unsafe-call-within-signal-handler;analyzer-use-after-free;analyzer-use-of-pointer-in-stale-stack-frame;analyzer-use-of-uninitialized-value;analyzer-write-to-const;analyzer-write-to-string-literal;array-bounds=1;array-compare;array-parameter=2;bool-compare;builtin-declaration-mismatch;cannot-profile;cast-function-type;catch-value=1;class-memaccess;clobbered;coverage-invalid-line-number;coverage-mismatch;dangling-pointer=2;format-contains-nul;format-diag;format-overflow=1;format-truncation=1;format=1;if-not-aligned;implicit-fallthrough=3;inherited-variadic-ctor;init-list-lifetime;init-self;interference-size;invalid-memory-model;literal-suffix;lto-type-mismatch;maybe-uninitialized;memset-elt-size;mismatched-dealloc;missing-attributes;missing-profile;missing-requires;missing-template-keyword;multistatement-macros;non-template-friend;nonnull-compare;openmp-simd;overflow;packed-bitfield-compat;packed-not-aligned;pmf-conversions;prio-ctor-dtor;restrict;return-local-addr;scalar-storage-order;sized-deallocation;strict-aliasing=3;strict-overflow=1;stringop-overflow=2;stringop-overread;stringop-truncation;subobject-linkage;switch-outside-range;switch-unreachable;sync-nand;terminate;tsan;type-limits;unused-local-typedefs;use-after-free=2;virtual-move-assign;vla-parameter;volatile-register-var;zero-length-bounds") + +# Function to build a list of warning flags from their names function(o2_build_warning_flags) cmake_parse_arguments(PARSE_ARGV 0 A "" "PREFIX;OUTPUTVARNAME" "WARNINGS") if(A_UNPARSED_ARGUMENTS) @@ -32,22 +38,22 @@ message(STATUS "O2PHYSICS_WARNINGS_AS_ERRORS: ${O2PHYSICS_WARNINGS_AS_ERRORS}") # Treat warnings as errors. if(O2PHYSICS_WARNINGS_AS_ERRORS) - # Add warnings for both GCC and Clang. + # Add warnings for all platforms. o2_build_warning_flags(PREFIX "-Werror=" OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_COMMON WARNINGS ${O2PHYSICS_WARNINGS_COMMON}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_COMMON}") if(APPLE) - # Add warnings for Clang only. + # Add warnings for macOS only. o2_build_warning_flags(PREFIX "-Werror=" OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_APPLE - WARNINGS ${O2PHYSICS_WARNINGS_APPLE}) + WARNINGS ${O2PHYSICS_WARNINGS_CLANG}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_APPLE}") elseif(UNIX) - # Add warnings for GCC only. + # Add warnings for Linux only. o2_build_warning_flags(PREFIX "-Werror=" OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_UNIX - WARNINGS ${O2PHYSICS_WARNINGS_UNIX}) + WARNINGS ${O2PHYSICS_WARNINGS_GCC}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_UNIX}") endif() endif() From 89ce377822b1a449a28203776df2200aff8cda95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Sat, 22 Jun 2024 02:13:03 +0200 Subject: [PATCH 09/15] Exclude sign-compare --- dependencies/O2PhysicsCompileFlags.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index 6f65a031c0e..719711cbca7 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -14,7 +14,8 @@ include_guard() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") # Enabled warnings supported by Clang and GCC -set(O2PHYSICS_WARNINGS_COMMON "NSObject-attribute;address;address-of-packed-member;attribute-warning;attributes;bool-operation;builtin-macro-redefined;char-subscripts;class-conversion;comment;conversion-null;cpp;dangling-else;delete-incomplete;delete-non-virtual-dtor;deprecated;deprecated-copy;deprecated-declarations;div-by-zero;empty-body;endif-labels;enum-compare;exceptions;format-extra-args;format-zero-length;frame-address;free-nonheap-object;ignored-attributes;ignored-qualifiers;inaccessible-base;infinite-recursion;int-in-bool-context;int-to-pointer-cast;invalid-offsetof;logical-not-parentheses;main;memset-transposed-args;misleading-indentation;mismatched-new-delete;missing-field-initializers;narrowing;noexcept-type;nonnull;odr;parentheses;pessimizing-move;pointer-compare;pragmas;psabi;range-loop-construct;redundant-move;reorder;return-type;sequence-point;shift-count-negative;shift-count-overflow;sign-compare;sizeof-array-argument;sizeof-array-div;sizeof-pointer-div;sizeof-pointer-memaccess;string-compare;switch;switch-bool;tautological-compare;trigraphs;uninitialized;unknown-pragmas;unused;unused-but-set-parameter;unused-but-set-variable;unused-function;unused-label;unused-parameter;unused-result;unused-value;unused-variable;varargs;vexing-parse") +set(O2PHYSICS_WARNINGS_COMMON "NSObject-attribute;address;address-of-packed-member;attribute-warning;attributes;bool-operation;builtin-macro-redefined;char-subscripts;class-conversion;comment;conversion-null;cpp;dangling-else;delete-incomplete;delete-non-virtual-dtor;deprecated;deprecated-copy;deprecated-declarations;div-by-zero;empty-body;endif-labels;enum-compare;exceptions;format-extra-args;format-zero-length;frame-address;free-nonheap-object;ignored-attributes;ignored-qualifiers;inaccessible-base;infinite-recursion;int-in-bool-context;int-to-pointer-cast;invalid-offsetof;logical-not-parentheses;main;memset-transposed-args;misleading-indentation;mismatched-new-delete;missing-field-initializers;narrowing;noexcept-type;nonnull;odr;parentheses;pessimizing-move;pointer-compare;pragmas;psabi;range-loop-construct;redundant-move;reorder;return-type;sequence-point;shift-count-negative;shift-count-overflow;sizeof-array-argument;sizeof-array-div;sizeof-pointer-div;sizeof-pointer-memaccess;string-compare;switch;switch-bool;tautological-compare;trigraphs;uninitialized;unknown-pragmas;unused;unused-but-set-parameter;unused-but-set-variable;unused-function;unused-label;unused-parameter;unused-result;unused-value;unused-variable;varargs;vexing-parse") +# TODO: sign-compare # Enabled warnings supported by Clang only set(O2PHYSICS_WARNINGS_CLANG "#pragma-messages;#warnings;CFString-literal;CL4;IndependentClass-attribute;absolute-value;abstract-final-class;address-of-temporary;aix-compat;align-mismatch;alloca-with-align-alignof;always-inline-coroutine;ambiguous-delete;ambiguous-ellipsis;ambiguous-macro;ambiguous-member-template;ambiguous-reversed-operator;analyzer-incompatible-plugin;anon-enum-enum-conversion;anonymous-pack-parens;arc;arc-bridge-casts-disallowed-in-nonarc;arc-non-pod-memaccess;arc-performSelector-leaks;arc-retain-cycles;arc-unsafe-retained-assign;argument-outside-range;argument-undefined-behaviour;array-bounds;array-parameter;asm;asm-operand-widths;assume;atimport-in-framework-header;atomic-access;atomic-alignment;atomic-memory-ordering;atomic-property-with-user-defined-accessor;attribute-packed-for-bitfield;auto-disable-vptr-sanitizer;auto-storage-class;auto-var-id;availability;avr-rtlib-linking-quirks;backend-plugin;backslash-newline-escape;binding-in-condition;bitfield-constant-conversion;bitfield-width;bitwise-conditional-parentheses;bitwise-instead-of-logical;bitwise-op-parentheses;block-capture-autoreleasing;bool-conversion;bool-conversions;braced-scalar-init;branch-protection;bridge-cast;builtin-assume-aligned-alignment;builtin-memcpy-chk-size;builtin-requires-header;call-to-pure-virtual-from-ctor-dtor;called-once-parameter;cast-calling-convention;cast-of-sel-type;cast-qual-unrelated;clang-cl-pch;class-varargs;cmse-union-leak;comments;compare-distinct-pointer-types;compound-token-split;compound-token-split-by-macro;concepts-ts-compat;conditional-type-mismatch;config-macros;constant-conversion;constant-evaluated;constant-logical-operand;constexpr-not-const;conversion;coroutine;coroutine-missing-unhandled-exception;ctu;cuda-compat;cxx-attribute-extension;dangling;dangling-field;dangling-gsl;dangling-initializer-list;darwin-sdk-settings;dealloc-in-category;debug-compression-unavailable;defaulted-function-deleted;delegating-ctor-cycles;delete-abstract-non-virtual-dtor;delete-non-abstract-non-virtual-dtor;deprecate-lax-vec-conv-all;deprecated-altivec-src-compat;deprecated-anon-enum-enum-conversion;deprecated-array-compare;deprecated-attributes;deprecated-builtins;deprecated-comma-subscript;deprecated-copy-with-user-provided-copy;deprecated-coroutine;deprecated-enum-compare;deprecated-enum-compare-conditional;deprecated-enum-enum-conversion;deprecated-enum-float-conversion;deprecated-experimental-coroutine;deprecated-increment-bool;deprecated-non-prototype;deprecated-objc-isa-usage;deprecated-objc-pointer-introspection;deprecated-objc-pointer-introspection-performSelector;deprecated-pragma;deprecated-register;deprecated-static-analyzer-flag;deprecated-type;deprecated-volatile;deprecated-writable-strings;distributed-object-modifiers;division-by-zero;dll-attribute-on-redeclaration;dllexport-explicit-instantiation-decl;dllimport-static-field-def;dtor-name;dtor-typedef;duplicate-decl-specifier;duplicate-protocol;dynamic-class-memaccess;dynamic-exception-spec;elaborated-enum-base;elaborated-enum-class;empty-decomposition;empty-init-stmt;encode-type;enum-compare-conditional;enum-compare-switch;enum-conversion;enum-enum-conversion;enum-float-conversion;enum-too-large;excess-initializers;expansion-to-defined;explicit-initialize-call;export-unnamed;export-using-directive;extern-c-compat;extern-initializer;extra-qualification;extra-tokens;final-dtor-non-final-class;final-macro;fixed-point-overflow;flag-enum;for-loop-analysis;format;format-insufficient-args;format-invalid-specifier;format-security;format=2;fortify-source;frame-larger-than;frame-larger-than=;framework-include-private-from-public;function-def-in-objc-container;function-multiversion;fuse-ld-path;gcc-compat;global-isel;gnu;gnu-alignof-expression;gnu-array-member-paren-init;gnu-designator;gnu-folding-constant;gnu-inline-cpp-without-extern;gnu-null-pointer-arithmetic;gnu-static-float-init;gnu-string-literal-operator-template;gnu-variable-sized-type-not-at-end;gpu-maybe-wrong-side;header-guard;hip-only;hlsl-extensions;ignored-availability-without-sdk-settings;ignored-optimization-argument;ignored-pragma-intrinsic;ignored-pragmas;ignored-reference-qualifiers;implicit;implicit-const-int-float-conversion;implicit-conversion-floating-point-to-bool;implicit-exception-spec-mismatch;implicit-fixed-point-conversion;implicit-float-conversion;implicit-function-declaration;implicit-int;implicit-int-float-conversion;implicitly-unsigned-literal;include-next-absolute-path;include-next-outside-header;incompatible-exception-spec;incompatible-function-pointer-types;incompatible-library-redeclaration;incompatible-ms-struct;incompatible-pointer-types;incompatible-pointer-types-discards-qualifiers;incompatible-property-type;incompatible-sysroot;incomplete-framework-module-declaration;incomplete-implementation;incomplete-module;incomplete-setjmp-declaration;incomplete-umbrella;inconsistent-dllimport;inconsistent-missing-override;increment-bool;initializer-overrides;injected-class-name;inline-asm;inline-namespace-reopened-noninline;inline-new-delete;instantiation-after-specialization;int-conversion;int-conversions;int-to-void-pointer-cast;integer-overflow;interrupt-service-routine;invalid-command-line-argument;invalid-constexpr;invalid-iboutlet;invalid-initializer-from-system-header;invalid-ios-deployment-target;invalid-no-builtin-names;invalid-noreturn;invalid-or-nonexistent-directory;invalid-partial-specialization;invalid-pp-token;invalid-source-encoding;invalid-token-paste;jump-seh-finally;keyword-compat;knr-promoted-parameter;large-by-value-copy;linker-warnings;literal-conversion;literal-range;local-type-template-args;logical-op-parentheses;macro-redefined;main-return-type;malformed-warning-check;many-braces-around-scalar-init;max-unsigned-zero;memsize-comparison;microsoft;microsoft-abstract;microsoft-anon-tag;microsoft-cast;microsoft-const-init;microsoft-default-arg-redefinition;microsoft-drectve-section;microsoft-enum-forward-reference;microsoft-exception-spec;microsoft-exists;microsoft-explicit-constructor-call;microsoft-extra-qualification;microsoft-goto;microsoft-inaccessible-base;microsoft-include;microsoft-mutable-reference;microsoft-pure-definition;microsoft-sealed;microsoft-static-assert;microsoft-template;microsoft-template-shadow;microsoft-union-member-reference;microsoft-unqualified-friend;microsoft-using-decl;microsoft-void-pseudo-dtor;misexpect;mismatched-parameter-types;mismatched-return-types;mismatched-tags;missing-braces;missing-constinit;missing-declarations;missing-exception-spec;missing-method-return-type;missing-noescape;missing-prototype-for-cc;missing-selector-name;missing-sysroot;misspelled-assumption;module-conflict;module-file-config-mismatch;module-file-extension;module-import-in-extern-c;modules-ambiguous-internal-linkage;modules-import-nested-redundant;move;msvc-include;msvc-not-found;multichar;multiple-move-vbase;new-returns-null;noderef;non-c-typedef-for-linkage;non-gcc;non-literal-null-conversion;non-pod-varargs;non-power-of-two-alignment;nonportable-include-path;nonportable-vector-initialization;nontrivial-memaccess;nsconsumed-mismatch;nsreturns-mismatch;null-arithmetic;null-character;null-conversion;null-dereference;null-pointer-arithmetic;null-pointer-subtraction;nullability;nullability-completeness;nullability-completeness-on-arrays;nullability-declspec;nullability-inferred-on-nested-type;objc-autosynthesis-property-ivar-name-match;objc-bool-constant-conversion;objc-boxing;objc-circular-container;objc-cocoa-api;objc-designated-initializers;objc-dictionary-duplicate-keys;objc-flexible-array;objc-forward-class-redefinition;objc-literal-compare;objc-literal-conversion;objc-macro-redefinition;objc-method-access;objc-missing-super-calls;objc-multiple-method-names;objc-noncopy-retain-block-property;objc-nonunified-exceptions;objc-property-implementation;objc-property-implicit-mismatch;objc-property-matches-cocoa-ownership-rule;objc-property-no-attribute;objc-property-synthesis;objc-protocol-method-implementation;objc-protocol-property-synthesis;objc-protocol-qualifiers;objc-readonly-with-setter-property;objc-redundant-api-use;objc-redundant-literal-use;objc-root-class;objc-signed-char-bool;objc-signed-char-bool-implicit-float-conversion;objc-string-compare;objc-string-concatenation;objc-unsafe-perform-selector;opencl-unsupported-rgba;openmp;openmp-51-extensions;openmp-clauses;openmp-loop-form;openmp-mapping;openmp-target;option-ignored;ordered-compare-function-pointers;out-of-line-declaration;out-of-scope-function;overloaded-shift-op-parentheses;overloaded-virtual;override-init;override-module;overriding-t-option;parentheses-equality;partial-availability;pass-failed;pch-date-time;pedantic-macros;pointer-arith;pointer-bool-conversion;pointer-integer-compare;pointer-sign;pointer-to-enum-cast;pointer-to-int-cast;pointer-type-mismatch;potentially-direct-selector;potentially-evaluated-expression;pragma-clang-attribute;pragma-once-outside-header;pragma-pack;pragma-system-header-outside-header;predefined-identifier-outside-function;private-extern;private-header;private-module;profile-instr-out-of-date;profile-instr-unprofiled;property-access-dot-syntax;property-attribute-mismatch;protocol;protocol-property-synthesis-ambiguity;qualified-void-return-type;readonly-iboutlet-property;receiver-expr;receiver-forward-class;redeclared-class-member;redundant-consteval-if;register;reinterpret-base-class;reorder-ctor;reorder-init-list;requires-super-attribute;reserved-user-defined-literal;restrict-expansion;return-stack-address;return-type-c-linkage;rewrite-not-bool;rtti;sarif-format-unstable;section;self-assign;self-assign-field;self-assign-overloaded;self-move;semicolon-before-method-body;sentinel;serialized-diagnostics;shadow;shadow-all;shadow-ivar;shift-negative-value;shift-op-parentheses;shift-overflow;signed-unsigned-wchar;sizeof-array-decay;slash-u-filename;slh-asm-goto;sometimes-uninitialized;source-mgr;source-uses-openmp;stack-exhausted;stack-protector;static-float-init;static-in-inline;static-inline-explicit-instantiation;static-local-in-inline;static-self-init;stdlibcxx-not-found;strict-potentially-direct-selector;strict-prototypes;string-concatenation;string-plus-char;string-plus-int;strlcpy-strlcat-size;strncat-size;suspicious-bzero;suspicious-memaccess;swift-name-attribute;sync-fetch-and-nand-semantics-changed;target-clones-mixed-specifiers;tautological-bitwise-compare;tautological-constant-compare;tautological-constant-out-of-range-compare;tautological-objc-bool-compare;tautological-overlap-compare;tautological-pointer-compare;tautological-undefined-compare;tcb-enforcement;tentative-definition-incomplete-type;type-safety;typedef-redefinition;typename-missing;unable-to-open-stats-file;unaligned-qualifier-implicit-cast;unavailable-declarations;undefined-bool-conversion;undefined-inline;undefined-internal;undefined-var-template;underaligned-exception-object;unevaluated-expression;unguarded-availability;unguarded-availability-new;unicode;unicode-homoglyph;unicode-whitespace;unicode-zero-width;uninitialized-const-reference;unknown-argument;unknown-assumption;unknown-attributes;unknown-cuda-version;unknown-directives;unknown-escape-sequence;unknown-sanitizers;unknown-warning-option;unnamed-type-template-args;unneeded-internal-declaration;unqualified-std-cast-call;unreachable-code;unreachable-code-aggressive;unreachable-code-generic-assoc;unsequenced;unsupported-abi;unsupported-abs;unsupported-availability-guard;unsupported-cb;unsupported-floating-point-opt;unsupported-friend;unsupported-gpopt;unsupported-nan;unsupported-target-opt;unsupported-visibility;unusable-partial-specialization;unused-command-line-argument;unused-comparison;unused-const-variable;unused-getter-return-value;unused-lambda-capture;unused-local-typedef;unused-private-field;unused-property-ivar;unused-volatile-lvalue;user-defined-literals;user-defined-warnings;variadic-macros;vec-elem-size;visibility;void-pointer-to-enum-cast;void-pointer-to-int-cast;void-ptr-dereference;wasm-exception-spec;writable-strings;write-strings;xor-used-as-pow") From 75fb9c078896297d939f36371129c3baec68816d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Tue, 2 Jul 2024 00:36:50 +0200 Subject: [PATCH 10/15] Reverse list logic. Include all enabled warnings by default --- dependencies/O2PhysicsCompileFlags.cmake | 46 ++++++++++++------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/dependencies/O2PhysicsCompileFlags.cmake b/dependencies/O2PhysicsCompileFlags.cmake index 719711cbca7..50967b17ea6 100644 --- a/dependencies/O2PhysicsCompileFlags.cmake +++ b/dependencies/O2PhysicsCompileFlags.cmake @@ -11,17 +11,16 @@ include_guard() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-error") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") -# Enabled warnings supported by Clang and GCC -set(O2PHYSICS_WARNINGS_COMMON "NSObject-attribute;address;address-of-packed-member;attribute-warning;attributes;bool-operation;builtin-macro-redefined;char-subscripts;class-conversion;comment;conversion-null;cpp;dangling-else;delete-incomplete;delete-non-virtual-dtor;deprecated;deprecated-copy;deprecated-declarations;div-by-zero;empty-body;endif-labels;enum-compare;exceptions;format-extra-args;format-zero-length;frame-address;free-nonheap-object;ignored-attributes;ignored-qualifiers;inaccessible-base;infinite-recursion;int-in-bool-context;int-to-pointer-cast;invalid-offsetof;logical-not-parentheses;main;memset-transposed-args;misleading-indentation;mismatched-new-delete;missing-field-initializers;narrowing;noexcept-type;nonnull;odr;parentheses;pessimizing-move;pointer-compare;pragmas;psabi;range-loop-construct;redundant-move;reorder;return-type;sequence-point;shift-count-negative;shift-count-overflow;sizeof-array-argument;sizeof-array-div;sizeof-pointer-div;sizeof-pointer-memaccess;string-compare;switch;switch-bool;tautological-compare;trigraphs;uninitialized;unknown-pragmas;unused;unused-but-set-parameter;unused-but-set-variable;unused-function;unused-label;unused-parameter;unused-result;unused-value;unused-variable;varargs;vexing-parse") -# TODO: sign-compare +# Enabled warnings supported by Clang and GCC, not treated as errors +set(O2PHYSICS_WARNINGS_COMMON_NO_ERROR "sign-compare") -# Enabled warnings supported by Clang only -set(O2PHYSICS_WARNINGS_CLANG "#pragma-messages;#warnings;CFString-literal;CL4;IndependentClass-attribute;absolute-value;abstract-final-class;address-of-temporary;aix-compat;align-mismatch;alloca-with-align-alignof;always-inline-coroutine;ambiguous-delete;ambiguous-ellipsis;ambiguous-macro;ambiguous-member-template;ambiguous-reversed-operator;analyzer-incompatible-plugin;anon-enum-enum-conversion;anonymous-pack-parens;arc;arc-bridge-casts-disallowed-in-nonarc;arc-non-pod-memaccess;arc-performSelector-leaks;arc-retain-cycles;arc-unsafe-retained-assign;argument-outside-range;argument-undefined-behaviour;array-bounds;array-parameter;asm;asm-operand-widths;assume;atimport-in-framework-header;atomic-access;atomic-alignment;atomic-memory-ordering;atomic-property-with-user-defined-accessor;attribute-packed-for-bitfield;auto-disable-vptr-sanitizer;auto-storage-class;auto-var-id;availability;avr-rtlib-linking-quirks;backend-plugin;backslash-newline-escape;binding-in-condition;bitfield-constant-conversion;bitfield-width;bitwise-conditional-parentheses;bitwise-instead-of-logical;bitwise-op-parentheses;block-capture-autoreleasing;bool-conversion;bool-conversions;braced-scalar-init;branch-protection;bridge-cast;builtin-assume-aligned-alignment;builtin-memcpy-chk-size;builtin-requires-header;call-to-pure-virtual-from-ctor-dtor;called-once-parameter;cast-calling-convention;cast-of-sel-type;cast-qual-unrelated;clang-cl-pch;class-varargs;cmse-union-leak;comments;compare-distinct-pointer-types;compound-token-split;compound-token-split-by-macro;concepts-ts-compat;conditional-type-mismatch;config-macros;constant-conversion;constant-evaluated;constant-logical-operand;constexpr-not-const;conversion;coroutine;coroutine-missing-unhandled-exception;ctu;cuda-compat;cxx-attribute-extension;dangling;dangling-field;dangling-gsl;dangling-initializer-list;darwin-sdk-settings;dealloc-in-category;debug-compression-unavailable;defaulted-function-deleted;delegating-ctor-cycles;delete-abstract-non-virtual-dtor;delete-non-abstract-non-virtual-dtor;deprecate-lax-vec-conv-all;deprecated-altivec-src-compat;deprecated-anon-enum-enum-conversion;deprecated-array-compare;deprecated-attributes;deprecated-builtins;deprecated-comma-subscript;deprecated-copy-with-user-provided-copy;deprecated-coroutine;deprecated-enum-compare;deprecated-enum-compare-conditional;deprecated-enum-enum-conversion;deprecated-enum-float-conversion;deprecated-experimental-coroutine;deprecated-increment-bool;deprecated-non-prototype;deprecated-objc-isa-usage;deprecated-objc-pointer-introspection;deprecated-objc-pointer-introspection-performSelector;deprecated-pragma;deprecated-register;deprecated-static-analyzer-flag;deprecated-type;deprecated-volatile;deprecated-writable-strings;distributed-object-modifiers;division-by-zero;dll-attribute-on-redeclaration;dllexport-explicit-instantiation-decl;dllimport-static-field-def;dtor-name;dtor-typedef;duplicate-decl-specifier;duplicate-protocol;dynamic-class-memaccess;dynamic-exception-spec;elaborated-enum-base;elaborated-enum-class;empty-decomposition;empty-init-stmt;encode-type;enum-compare-conditional;enum-compare-switch;enum-conversion;enum-enum-conversion;enum-float-conversion;enum-too-large;excess-initializers;expansion-to-defined;explicit-initialize-call;export-unnamed;export-using-directive;extern-c-compat;extern-initializer;extra-qualification;extra-tokens;final-dtor-non-final-class;final-macro;fixed-point-overflow;flag-enum;for-loop-analysis;format;format-insufficient-args;format-invalid-specifier;format-security;format=2;fortify-source;frame-larger-than;frame-larger-than=;framework-include-private-from-public;function-def-in-objc-container;function-multiversion;fuse-ld-path;gcc-compat;global-isel;gnu;gnu-alignof-expression;gnu-array-member-paren-init;gnu-designator;gnu-folding-constant;gnu-inline-cpp-without-extern;gnu-null-pointer-arithmetic;gnu-static-float-init;gnu-string-literal-operator-template;gnu-variable-sized-type-not-at-end;gpu-maybe-wrong-side;header-guard;hip-only;hlsl-extensions;ignored-availability-without-sdk-settings;ignored-optimization-argument;ignored-pragma-intrinsic;ignored-pragmas;ignored-reference-qualifiers;implicit;implicit-const-int-float-conversion;implicit-conversion-floating-point-to-bool;implicit-exception-spec-mismatch;implicit-fixed-point-conversion;implicit-float-conversion;implicit-function-declaration;implicit-int;implicit-int-float-conversion;implicitly-unsigned-literal;include-next-absolute-path;include-next-outside-header;incompatible-exception-spec;incompatible-function-pointer-types;incompatible-library-redeclaration;incompatible-ms-struct;incompatible-pointer-types;incompatible-pointer-types-discards-qualifiers;incompatible-property-type;incompatible-sysroot;incomplete-framework-module-declaration;incomplete-implementation;incomplete-module;incomplete-setjmp-declaration;incomplete-umbrella;inconsistent-dllimport;inconsistent-missing-override;increment-bool;initializer-overrides;injected-class-name;inline-asm;inline-namespace-reopened-noninline;inline-new-delete;instantiation-after-specialization;int-conversion;int-conversions;int-to-void-pointer-cast;integer-overflow;interrupt-service-routine;invalid-command-line-argument;invalid-constexpr;invalid-iboutlet;invalid-initializer-from-system-header;invalid-ios-deployment-target;invalid-no-builtin-names;invalid-noreturn;invalid-or-nonexistent-directory;invalid-partial-specialization;invalid-pp-token;invalid-source-encoding;invalid-token-paste;jump-seh-finally;keyword-compat;knr-promoted-parameter;large-by-value-copy;linker-warnings;literal-conversion;literal-range;local-type-template-args;logical-op-parentheses;macro-redefined;main-return-type;malformed-warning-check;many-braces-around-scalar-init;max-unsigned-zero;memsize-comparison;microsoft;microsoft-abstract;microsoft-anon-tag;microsoft-cast;microsoft-const-init;microsoft-default-arg-redefinition;microsoft-drectve-section;microsoft-enum-forward-reference;microsoft-exception-spec;microsoft-exists;microsoft-explicit-constructor-call;microsoft-extra-qualification;microsoft-goto;microsoft-inaccessible-base;microsoft-include;microsoft-mutable-reference;microsoft-pure-definition;microsoft-sealed;microsoft-static-assert;microsoft-template;microsoft-template-shadow;microsoft-union-member-reference;microsoft-unqualified-friend;microsoft-using-decl;microsoft-void-pseudo-dtor;misexpect;mismatched-parameter-types;mismatched-return-types;mismatched-tags;missing-braces;missing-constinit;missing-declarations;missing-exception-spec;missing-method-return-type;missing-noescape;missing-prototype-for-cc;missing-selector-name;missing-sysroot;misspelled-assumption;module-conflict;module-file-config-mismatch;module-file-extension;module-import-in-extern-c;modules-ambiguous-internal-linkage;modules-import-nested-redundant;move;msvc-include;msvc-not-found;multichar;multiple-move-vbase;new-returns-null;noderef;non-c-typedef-for-linkage;non-gcc;non-literal-null-conversion;non-pod-varargs;non-power-of-two-alignment;nonportable-include-path;nonportable-vector-initialization;nontrivial-memaccess;nsconsumed-mismatch;nsreturns-mismatch;null-arithmetic;null-character;null-conversion;null-dereference;null-pointer-arithmetic;null-pointer-subtraction;nullability;nullability-completeness;nullability-completeness-on-arrays;nullability-declspec;nullability-inferred-on-nested-type;objc-autosynthesis-property-ivar-name-match;objc-bool-constant-conversion;objc-boxing;objc-circular-container;objc-cocoa-api;objc-designated-initializers;objc-dictionary-duplicate-keys;objc-flexible-array;objc-forward-class-redefinition;objc-literal-compare;objc-literal-conversion;objc-macro-redefinition;objc-method-access;objc-missing-super-calls;objc-multiple-method-names;objc-noncopy-retain-block-property;objc-nonunified-exceptions;objc-property-implementation;objc-property-implicit-mismatch;objc-property-matches-cocoa-ownership-rule;objc-property-no-attribute;objc-property-synthesis;objc-protocol-method-implementation;objc-protocol-property-synthesis;objc-protocol-qualifiers;objc-readonly-with-setter-property;objc-redundant-api-use;objc-redundant-literal-use;objc-root-class;objc-signed-char-bool;objc-signed-char-bool-implicit-float-conversion;objc-string-compare;objc-string-concatenation;objc-unsafe-perform-selector;opencl-unsupported-rgba;openmp;openmp-51-extensions;openmp-clauses;openmp-loop-form;openmp-mapping;openmp-target;option-ignored;ordered-compare-function-pointers;out-of-line-declaration;out-of-scope-function;overloaded-shift-op-parentheses;overloaded-virtual;override-init;override-module;overriding-t-option;parentheses-equality;partial-availability;pass-failed;pch-date-time;pedantic-macros;pointer-arith;pointer-bool-conversion;pointer-integer-compare;pointer-sign;pointer-to-enum-cast;pointer-to-int-cast;pointer-type-mismatch;potentially-direct-selector;potentially-evaluated-expression;pragma-clang-attribute;pragma-once-outside-header;pragma-pack;pragma-system-header-outside-header;predefined-identifier-outside-function;private-extern;private-header;private-module;profile-instr-out-of-date;profile-instr-unprofiled;property-access-dot-syntax;property-attribute-mismatch;protocol;protocol-property-synthesis-ambiguity;qualified-void-return-type;readonly-iboutlet-property;receiver-expr;receiver-forward-class;redeclared-class-member;redundant-consteval-if;register;reinterpret-base-class;reorder-ctor;reorder-init-list;requires-super-attribute;reserved-user-defined-literal;restrict-expansion;return-stack-address;return-type-c-linkage;rewrite-not-bool;rtti;sarif-format-unstable;section;self-assign;self-assign-field;self-assign-overloaded;self-move;semicolon-before-method-body;sentinel;serialized-diagnostics;shadow;shadow-all;shadow-ivar;shift-negative-value;shift-op-parentheses;shift-overflow;signed-unsigned-wchar;sizeof-array-decay;slash-u-filename;slh-asm-goto;sometimes-uninitialized;source-mgr;source-uses-openmp;stack-exhausted;stack-protector;static-float-init;static-in-inline;static-inline-explicit-instantiation;static-local-in-inline;static-self-init;stdlibcxx-not-found;strict-potentially-direct-selector;strict-prototypes;string-concatenation;string-plus-char;string-plus-int;strlcpy-strlcat-size;strncat-size;suspicious-bzero;suspicious-memaccess;swift-name-attribute;sync-fetch-and-nand-semantics-changed;target-clones-mixed-specifiers;tautological-bitwise-compare;tautological-constant-compare;tautological-constant-out-of-range-compare;tautological-objc-bool-compare;tautological-overlap-compare;tautological-pointer-compare;tautological-undefined-compare;tcb-enforcement;tentative-definition-incomplete-type;type-safety;typedef-redefinition;typename-missing;unable-to-open-stats-file;unaligned-qualifier-implicit-cast;unavailable-declarations;undefined-bool-conversion;undefined-inline;undefined-internal;undefined-var-template;underaligned-exception-object;unevaluated-expression;unguarded-availability;unguarded-availability-new;unicode;unicode-homoglyph;unicode-whitespace;unicode-zero-width;uninitialized-const-reference;unknown-argument;unknown-assumption;unknown-attributes;unknown-cuda-version;unknown-directives;unknown-escape-sequence;unknown-sanitizers;unknown-warning-option;unnamed-type-template-args;unneeded-internal-declaration;unqualified-std-cast-call;unreachable-code;unreachable-code-aggressive;unreachable-code-generic-assoc;unsequenced;unsupported-abi;unsupported-abs;unsupported-availability-guard;unsupported-cb;unsupported-floating-point-opt;unsupported-friend;unsupported-gpopt;unsupported-nan;unsupported-target-opt;unsupported-visibility;unusable-partial-specialization;unused-command-line-argument;unused-comparison;unused-const-variable;unused-getter-return-value;unused-lambda-capture;unused-local-typedef;unused-private-field;unused-property-ivar;unused-volatile-lvalue;user-defined-literals;user-defined-warnings;variadic-macros;vec-elem-size;visibility;void-pointer-to-enum-cast;void-pointer-to-int-cast;void-ptr-dereference;wasm-exception-spec;writable-strings;write-strings;xor-used-as-pow") +# Enabled warnings supported by Clang only, not treated as errors +set(O2PHYSICS_WARNINGS_CLANG_NO_ERROR "") -# Enabled warnings supported by GCC only -set(O2PHYSICS_WARNINGS_GCC "aggressive-loop-optimizations;analyzer-double-fclose;analyzer-double-free;analyzer-exposure-through-output-file;analyzer-file-leak;analyzer-free-of-non-heap;analyzer-malloc-leak;analyzer-mismatching-deallocation;analyzer-null-argument;analyzer-null-dereference;analyzer-possible-null-argument;analyzer-possible-null-dereference;analyzer-shift-count-negative;analyzer-shift-count-overflow;analyzer-stale-setjmp-buffer;analyzer-tainted-allocation-size;analyzer-tainted-array-index;analyzer-tainted-divisor;analyzer-tainted-offset;analyzer-tainted-size;analyzer-unsafe-call-within-signal-handler;analyzer-use-after-free;analyzer-use-of-pointer-in-stale-stack-frame;analyzer-use-of-uninitialized-value;analyzer-write-to-const;analyzer-write-to-string-literal;array-bounds=1;array-compare;array-parameter=2;bool-compare;builtin-declaration-mismatch;cannot-profile;cast-function-type;catch-value=1;class-memaccess;clobbered;coverage-invalid-line-number;coverage-mismatch;dangling-pointer=2;format-contains-nul;format-diag;format-overflow=1;format-truncation=1;format=1;if-not-aligned;implicit-fallthrough=3;inherited-variadic-ctor;init-list-lifetime;init-self;interference-size;invalid-memory-model;literal-suffix;lto-type-mismatch;maybe-uninitialized;memset-elt-size;mismatched-dealloc;missing-attributes;missing-profile;missing-requires;missing-template-keyword;multistatement-macros;non-template-friend;nonnull-compare;openmp-simd;overflow;packed-bitfield-compat;packed-not-aligned;pmf-conversions;prio-ctor-dtor;restrict;return-local-addr;scalar-storage-order;sized-deallocation;strict-aliasing=3;strict-overflow=1;stringop-overflow=2;stringop-overread;stringop-truncation;subobject-linkage;switch-outside-range;switch-unreachable;sync-nand;terminate;tsan;type-limits;unused-local-typedefs;use-after-free=2;virtual-move-assign;vla-parameter;volatile-register-var;zero-length-bounds") +# Enabled warnings supported by GCC only, not treated as errors +set(O2PHYSICS_WARNINGS_GCC_NO_ERROR "") # Function to build a list of warning flags from their names function(o2_build_warning_flags) @@ -39,23 +38,24 @@ message(STATUS "O2PHYSICS_WARNINGS_AS_ERRORS: ${O2PHYSICS_WARNINGS_AS_ERRORS}") # Treat warnings as errors. if(O2PHYSICS_WARNINGS_AS_ERRORS) - # Add warnings for all platforms. - o2_build_warning_flags(PREFIX "-Werror=" - OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_COMMON - WARNINGS ${O2PHYSICS_WARNINGS_COMMON}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_COMMON}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + # Set warning flags for all platforms. + o2_build_warning_flags(PREFIX "-Wno-error=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_COMMON_NO_ERROR + WARNINGS ${O2PHYSICS_WARNINGS_COMMON_NO_ERROR}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_COMMON_NO_ERROR}") if(APPLE) - # Add warnings for macOS only. - o2_build_warning_flags(PREFIX "-Werror=" - OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_APPLE - WARNINGS ${O2PHYSICS_WARNINGS_CLANG}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_APPLE}") + # Set warning flags for macOS only. + o2_build_warning_flags(PREFIX "-Wno-error=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_APPLE_NO_ERROR + WARNINGS ${O2PHYSICS_WARNINGS_CLANG_NO_ERROR}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_APPLE_NO_ERROR}") elseif(UNIX) - # Add warnings for Linux only. - o2_build_warning_flags(PREFIX "-Werror=" - OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_UNIX - WARNINGS ${O2PHYSICS_WARNINGS_GCC}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_UNIX}") + # Set warning flags for Linux only. + o2_build_warning_flags(PREFIX "-Wno-error=" + OUTPUTVARNAME O2PHYSICS_CXX_WARNINGS_UNIX_NO_ERROR + WARNINGS ${O2PHYSICS_WARNINGS_GCC_NO_ERROR}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${O2PHYSICS_CXX_WARNINGS_UNIX_NO_ERROR}") endif() endif() From f3b49c97b13b43699d4e38f47985605a5a6414d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Wed, 10 Jul 2024 16:34:08 +0200 Subject: [PATCH 11/15] Fix unused-parameter --- PWGCF/FemtoUniverse/Core/FemtoUniverseSHContainer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGCF/FemtoUniverse/Core/FemtoUniverseSHContainer.h b/PWGCF/FemtoUniverse/Core/FemtoUniverseSHContainer.h index ec65452c782..0838ce5e5b3 100644 --- a/PWGCF/FemtoUniverse/Core/FemtoUniverseSHContainer.h +++ b/PWGCF/FemtoUniverse/Core/FemtoUniverseSHContainer.h @@ -159,7 +159,7 @@ class FemtoUniverseSHContainer /// \param ChosenEventType same or mixed event /// \param maxl Maximum valie of L component of the spherical harmonics template - void AddEventPair(T const& part1, T const& part2, uint8_t ChosenEventType, int maxl) + void AddEventPair(T const& part1, T const& part2, uint8_t ChosenEventType, int /*maxl*/) { // int fMaxL = 2; // int fMaxJM = (2+1)*(2+1); @@ -216,7 +216,7 @@ class FemtoUniverseSHContainer /// Function to fill covariance matrix in 3D histograms /// \param ChosenEventType same or mixed event /// \param MaxJM Maximum value of J - void PackCov(uint8_t ChosenEventType, int MaxJM) + void PackCov(uint8_t ChosenEventType, int /*MaxJM*/) { if (ChosenEventType == femtoUniverseSHContainer::EventType::same) { for (int ibin = 1; ibin <= fcovnum->GetNbinsX(); ibin++) { From b233d8ceff63c74c39ae850bbf54865e9b5c55fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Wed, 10 Jul 2024 18:21:54 +0200 Subject: [PATCH 12/15] Fix unused-parameter --- PWGUD/Core/UDHelpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGUD/Core/UDHelpers.h b/PWGUD/Core/UDHelpers.h index 933120b7c2a..32349280419 100644 --- a/PWGUD/Core/UDHelpers.h +++ b/PWGUD/Core/UDHelpers.h @@ -743,7 +743,7 @@ bool cleanCalo(T const& bc, aod::Calos& calos, std::vector& /*lims*/, Sli // ----------------------------------------------------------------------------- // check if all tracks come from same MCCollision template -int64_t sameMCCollision(T tracks, aod::McCollisions mccols, aod::McParticles mcparts) +int64_t sameMCCollision(T tracks, aod::McCollisions, aod::McParticles) { int64_t colID = -1; for (auto const& track : tracks) { From 6a8738142be1c2a19047b4702bfd1d8d900b569a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Wed, 10 Jul 2024 23:39:41 +0200 Subject: [PATCH 13/15] Fix unused-parameter --- PWGUD/Tasks/upcTauCentralBarrelRL.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx index 041f645ece0..012ec81238d 100644 --- a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx +++ b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx @@ -1976,7 +1976,7 @@ struct UpcTauCentralBarrelRL { } // end fillHistograms template - void fillPIDhistograms(C reconstructedCollision, Ts reconstructedBarrelTracks) + void fillPIDhistograms(C /*reconstructedCollision*/, Ts reconstructedBarrelTracks) { if (isFirstReconstructedCollisions) { From fb118d7721bbd87ca4b86cd2f0596dc324f908d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Wed, 10 Jul 2024 23:53:47 +0200 Subject: [PATCH 14/15] Fix unused-parameter --- .../PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx b/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx index bd4d9dfd4f5..550d0ed43db 100644 --- a/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx +++ b/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx @@ -39,7 +39,7 @@ struct firstcorrelations { } template - void fillQA(TCollision collision, float centrality, TTracks tracks) + void fillQA(TCollision /*collision*/, float /*centrality*/, TTracks /*tracks*/) { } @@ -50,7 +50,7 @@ struct firstcorrelations { } template - void fillCorrelations(TTarget target, TTracks tracks1, TTracks tracks2, float centrality, float posZ) + void fillCorrelations(TTarget /*target*/, TTracks /*tracks1*/, TTracks /*tracks2*/, float centrality, float /*posZ*/) { } From 2af4156ae7350fe8f34f10a82ec9e40f52648f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Thu, 11 Jul 2024 00:47:26 +0200 Subject: [PATCH 15/15] Fix unused-parameter --- .../PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx b/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx index 550d0ed43db..cdec4f3ca95 100644 --- a/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx +++ b/Tutorials/PWGCF/TwoParticleCorrelations/src/firstcfcorrelations.cxx @@ -50,7 +50,7 @@ struct firstcorrelations { } template - void fillCorrelations(TTarget /*target*/, TTracks /*tracks1*/, TTracks /*tracks2*/, float centrality, float /*posZ*/) + void fillCorrelations(TTarget /*target*/, TTracks /*tracks1*/, TTracks /*tracks2*/, float /*centrality*/, float /*posZ*/) { }