set(WARNINGS
    -Waligned-new=all
    -Wall
    -Walloc-zero
    -Walloca
    -Wanalyzer-too-complex
    -Warith-conversion
    -Warray-bounds=2
    -Warray-parameter
    -Wattribute-alias=2
    -Wbidi-chars=any
    -Wcast-align=strict
    -Wcast-qual
    -Wcatch-value=3
    -Wcomma-subscript
    -Wconditionally-supported
    -Wconversion
    -Wctad-maybe-unsupported
    -Wctor-dtor-privacy
    -Wdate-time
    -Wdeprecated-copy-dtor
    -Wdeprecated-enum-enum-conversion
    -Wdeprecated-enum-float-conversion
    -Wdisabled-optimization
    -Wdouble-promotion
    -Wduplicated-branches
    -Wduplicated-cond
    -Weffc++
    -Wenum-compare
    -Wenum-conversion
    -Werror
    -Wextra
    -Wextra-semi
    -Wfloat-equal
    -Wformat-overflow=2
    -Wformat-signedness
    -Wformat-truncation=2
    -Wformat=2
    -Wframe-larger-than=8388608
    -Wimplicit-fallthrough=5
    -Winfinite-recursion
    -Winit-self
    -Winvalid-constexpr
    -Winvalid-imported-macros
    -Winvalid-pch
    -Winvalid-utf8
    -Wlarger-than=1073741824
    -Wlogical-op
    -Wmismatched-tags
    -Wmissing-braces
    -Wmissing-declarations
    -Wmissing-include-dirs
    -Wmultichar
    -Wmultiple-inheritance
    -Wnoexcept
    -Wnon-virtual-dtor
    -Wnormalized=nfkc
    -Wnull-dereference
    -Wold-style-cast
    -Woverlength-strings
    -Woverloaded-virtual
    -Wplacement-new=2
    -Wredundant-decls
    -Wredundant-tags
    -Wregister
    -Wshadow
    -Wshift-overflow=2
    -Wsign-conversion
    -Wsign-promo
    -Wstack-protector
    -Wstack-usage=8388608
    -Wstrict-null-sentinel
    -Wstrict-overflow=2
    -Wstringop-overflow=4
    -Wsuggest-final-methods
    -Wsuggest-final-types
    -Wsuggest-override
    -Wsynth
    -Wtrampolines
    -Wtrivial-auto-var-init
    -Wundef
    -Wunreachable-code
    -Wunused-const-variable=2
    -Wuse-after-free=3
    -Wvirtual-inheritance
    -Wvla
    -Wvolatile
    -Wwrite-strings
    -Wzero-as-null-pointer-constant
    -pedantic
    -pedantic-errors

    -Wno-missing-field-initializers
)