---
Checks:
  - '-*'
  - 'bugprone-*'
  - '-bugprone-easily-swappable-parameters'  # adjacent parameters of 1 type are not defects, and strong types would churn public signatures
  - 'performance-*'
  - 'readability-identifier-naming'
  - 'readability-redundant-*'
  - 'readability-misleading-indentation'
  - 'readability-container-size-empty'
  - 'readability-make-member-function-const'
  - 'misc-unused-using-decls'
  - 'misc-redundant-expression'
  - 'clang-diagnostic-shadow'
  - 'clang-diagnostic-shadow-field'

WarningsAsErrors: '*'

HeaderFilterRegex: '.*[/\](include[/\]rex|src|tests)[/\].*'

# Submodules are not edited in this repository
ExcludeHeaderFilterRegex: '.*[/\]thirdparty[/\].*'

CheckOptions:
  # Kernel export names are frozen, ___tracy_ names are generated by Tracy's zone macros, third party, __ImageBase is the linker's module base symbol, __start_rexguest and __stop_rexguest are the linker's section bounds, and rexshim__ names are generated by codegen from the guest import names
  - key: bugprone-reserved-identifier.AllowedIdentifiers
    value: '^(NetDll___WSAFDIsSet_entry|__C_specific_handler_entry|__ImageBase|___tracy_cpu_zone|___tracy_cpu_zone_d|___tracy_cpu_zone_i|___tracy_hook_zone|__start_rexguest|__stop_rexguest)$;^__imp__[A-Za-z0-9_]+$;^rexshim__[A-Za-z0-9_]+$'
  # Running out of memory and an OS lock failure cannot be handled in a noexcept function, and MSVC's map moves allocate. The list is comma separated with unqualified names
  - key: bugprone-exception-escape.IgnoredExceptions
    value: 'bad_alloc,bad_array_new_length,system_error'
  # Classes and structs
  - key: readability-identifier-naming.ClassCase
    value: CamelCase
  - key: readability-identifier-naming.StructCase
    value: CamelCase

  # Functions and methods
  - key: readability-identifier-naming.FunctionCase
    value: CamelCase
  - key: readability-identifier-naming.MethodCase
    value: CamelCase

  # Variables
  - key: readability-identifier-naming.VariableCase
    value: lower_case
  - key: readability-identifier-naming.ParameterCase
    value: lower_case
  - key: readability-identifier-naming.LocalVariableCase
    value: lower_case

  # Member variables
  - key: readability-identifier-naming.MemberCase
    value: lower_case
  - key: readability-identifier-naming.MemberSuffix
    value: '_'
  - key: readability-identifier-naming.PrivateMemberCase
    value: lower_case
  - key: readability-identifier-naming.PrivateMemberSuffix
    value: '_'
  - key: readability-identifier-naming.ProtectedMemberCase
    value: lower_case
  - key: readability-identifier-naming.ProtectedMemberSuffix
    value: '_'
  - key: readability-identifier-naming.PublicMemberCase
    value: lower_case
  - key: readability-identifier-naming.PublicMemberSuffix
    value: ''

  # Constants
  - key: readability-identifier-naming.ConstexprVariableCase
    value: CamelCase
  - key: readability-identifier-naming.ConstexprVariablePrefix
    value: 'k'
  - key: readability-identifier-naming.StaticConstantCase
    value: CamelCase
  - key: readability-identifier-naming.StaticConstantPrefix
    value: 'k'
  - key: readability-identifier-naming.GlobalConstantCase
    value: CamelCase
  - key: readability-identifier-naming.GlobalConstantPrefix
    value: 'k'

  # Enums
  - key: readability-identifier-naming.EnumCase
    value: CamelCase
  # Enumerators are kCamelCase, and a digit group may follow the prefix so Xenos formats keep their hardware names
  - key: readability-identifier-naming.EnumConstantCase
    value: CamelCase
  - key: readability-identifier-naming.EnumConstantPrefix
    value: 'k'

  # Namespaces
  - key: readability-identifier-naming.NamespaceCase
    value: lower_case

  # Template parameters
  - key: readability-identifier-naming.TemplateParameterCase
    value: CamelCase
  - key: readability-identifier-naming.TypeTemplateParameterCase
    value: CamelCase

  # Type aliases
  - key: readability-identifier-naming.TypeAliasCase
    value: CamelCase
  - key: readability-identifier-naming.TypedefCase
    value: CamelCase

  # Macros
  - key: readability-identifier-naming.MacroDefinitionCase
    value: UPPER_CASE
  # XDK and Win32 mirror types
  - key: readability-identifier-naming.ClassIgnoredRegexp
    value: '^(X_FILE_DIRECTORY_INFORMATION)$'
  # named by the C++ standard, X_STATUS, X_ERROR and X_E values
  - key: readability-identifier-naming.ConstexprVariableIgnoredRegexp
    value: '^(X_E_DEVICE_NOT_CONNECTED|X_E_FAIL|X_E_FALSE|X_E_INVALIDARG|X_E_NOTFOUND|X_E_NO_MORE_FILES|X_E_NO_SUCH_USER|X_E_SUCCESS|constant_v|is_be_type_v|is_flags_enum|is_float_v|is_mapped_ptr_v|value)$|^(X_ERROR|X_STATUS)_[A-Z0-9_]+$'
  # XDK and Win32 mirror types
  - key: readability-identifier-naming.EnumIgnoredRegexp
    value: '^(IRQL_FLAGS|X_DISPATCHER_FLAGS|X_FILE_ATTRIBUTES|X_FILE_DEVICE_TYPE|X_FILE_FS_INFORMATION_CLASS|X_FILE_INFORMATION_CLASS|X_INPUT_CAPS|X_INPUT_DEVSUBTYPE|X_INPUT_DEVTYPE|X_INPUT_FLAG|X_INPUT_GAMEPAD_BUTTON|X_INPUT_KEYSTROKE_FLAGS|X_KTHREAD_STATE_FLAGS|X_MEM|X_PAGE)$'
  # a digit group may follow the prefix so Xenos formats keep their hardware names, XDK and Win32 mirror types, Xenos and PowerPC documentation names
  - key: readability-identifier-naming.EnumConstantIgnoredRegexp
    value: '^(AVIVO_D1MODE_VIEWPORT_SIZE|AVIVO_D1SCL_SCALER_ENABLE|AVIVO_D1SCL_UPDATE|BC_DUMMY_CRAYRB_ENUMS|BC_DUMMY_CRAYRB_MOREENUMS|BC_PERFCOUNTER0_HI|BC_PERFCOUNTER0_LOW|BC_PERFCOUNTER0_SELECT|BC_PERFCOUNTER1_HI|BC_PERFCOUNTER1_LOW|BC_PERFCOUNTER1_SELECT|BC_PERFCOUNTER2_HI|BC_PERFCOUNTER2_LOW|BC_PERFCOUNTER2_SELECT|BC_PERFCOUNTER3_HI|BC_PERFCOUNTER3_LOW|BC_PERFCOUNTER3_SELECT|BIF_PERFCOUNTER0_HI|BIF_PERFCOUNTER0_LOW|BIF_PERFCOUNTER0_SELECT|BIOS_0_SCRATCH|BIOS_10_SCRATCH|BIOS_11_SCRATCH|BIOS_12_SCRATCH|BIOS_13_SCRATCH|BIOS_14_SCRATCH|BIOS_15_SCRATCH|BIOS_1_SCRATCH|BIOS_2_SCRATCH|BIOS_3_SCRATCH|BIOS_4_SCRATCH|BIOS_5_SCRATCH|BIOS_6_SCRATCH|BIOS_7_SCRATCH|BIOS_8_SCRATCH|BIOS_9_SCRATCH|CACHE_FLUSH|CACHE_FLUSH_AND_INV_EVENT|CACHE_FLUSH_AND_INV_TS_EVENT|CACHE_FLUSH_TS|CALLBACK_ACK|CALLBACK_ADDRESS|CALLBACK_CONTEXT|CAPTURE_START_STATUS|CGM_DRAM_CNTL_REG|CGM_MC0_IO_CNTL|CGM_MC1_IO_CNTL|CG_INT_ACK_REG|CG_INT_MASK_REG|CG_INT_STAT_REG|CG_SCRATCH1|COHER_BASE_HOST|COHER_BASE_PM4|COHER_BASE_RT|COHER_DEST_BASE_0|COHER_DEST_BASE_1|COHER_DEST_BASE_2|COHER_DEST_BASE_3|COHER_DEST_BASE_4|COHER_DEST_BASE_5|COHER_DEST_BASE_6|COHER_DEST_BASE_7|COHER_SIZE_HOST|COHER_SIZE_PM4|COHER_SIZE_RT|COHER_STATUS_HOST|COHER_STATUS_PM4|COHER_STATUS_RT|CONFIG_CNTL|CONFIG_XSTRAP|CONFIG_XSTRAP2|CONFIG_XSTRAP3|CONTEXT_DONE|CRTC_DEBUG|D1COLOR_SUBSAMPLE_CRCB_CNTL|D1MODE_CHUNK_SIZE_DEBUG|D1MODE_DATA_FORMAT|D1MODE_DESKTOP_HEIGHT|D1MODE_INT_MASK|D1MODE_LB_PITCH_IN_WORDS|D1MODE_MASTER_UPDATE_LOCK|D1MODE_MASTER_UPDATE_MODE|D1MODE_MAX_CHUNK_SIZE|D1MODE_PRIORITY_A_CNT|D1MODE_UNDERFLOW_STATUS|D1MODE_URGENCY_STAT|D1MODE_VBLANK_STATUS|D1MODE_VBLANK_VLINE_STATUS|D1MODE_VIEWPORT_START|D1MODE_VLINE_START_END|D1MODE_VLINE_STATUS|D1MODE_V_COUNTER|D1OVL_ALPHA_CONTROL|D1OVL_ALPHA_INSIDE_OVL_WINDOW|D1OVL_ALPHA_OUTSIDE_OVL_WINDOW|D1OVL_CONTROL1|D1OVL_ENABLE|D1OVL_END|D1OVL_PITCH|D1OVL_START|D1OVL_SURFACE_ADDRESS|D1OVL_SURFACE_OFFSET_X|D1OVL_SURFACE_OFFSET_Y|D1OVL_UPDATE|D1SCL_COEF_RAM_CONFLICT_STATUS|D1SCL_COEF_RAM_SELECT|D1SCL_COEF_RAM_TAP_DATA|D1SCL_CRC_CURRENT|D1SCL_CRC_ENABLE|D1SCL_CRC_LAST|D1SCL_CRC_MAS|D1SCL_CRC_SOURCE_SEL|D1SCL_HORZ_FILTER_CONTROL|D1SCL_HORZ_FILTER_INIT_CHROMA|D1SCL_HORZ_FILTER_INIT_RGB_LUMA|D1SCL_HORZ_FILTER_SCALE_RATIO|D1SCL_MANUAL_REPLICATE_CONTROL|D1SCL_ONE_SHOT_WATERMARK|D1SCL_TAP_CONTROL|D1SCL_UNDERFLOW_STATUS|D1SCL_VERT_FILTER_CONTROL|D1SCL_VERT_FILTER_INIT|D1SCL_VERT_FILTER_INIT_BOT|D1SCL_VERT_FILTER_SCALE_RATIO|DBG_CNTL1_REG|DBG_READ_REG|DCCG_CLK_CNTL|DCCG_DEBUG|DCCG_ONE_SHOT_CLOCKING_CNTL|DCCG_ONE_SHOT_RUN_CLOCKS_CNTL|DCCG_ONE_SHOT_RUN_CLOCKS_COUNT|DCCG_ONE_SHOT_STOP_CLOCKS_CNTL|DCCG_SCLK_R_DISP_CNTL|DCCG_TEST_CLK_SEL|DCP_CRC_CONTROL|DCP_CRC_MASK|DCP_CRC_P0_CURRENT|DCP_CRC_P0_LAST|DCP_DEBUG|DCP_LB_DATA_GAP_BETWEEN_CHUNK|DISP_INTERRUPT_STATUS|DISP_RBBMIF_RDWR_TIMEOUT|DMIF_STATUS|DOUT_DEBUG|DO_PERFCOUNTER0_HI|DO_PERFCOUNTER0_LOW|DO_PERFCOUNTER0_SELECT|DO_PERFCOUNTER1_HI|DO_PERFCOUNTER1_LOW|DO_PERFCOUNTER1_SELECT|DO_TEST_DEBUG_BUS_CLK1_SEL|DO_TEST_DEBUG_DATA|DO_TEST_DEBUG_DATA_TRIGGER_MASK|DO_TEST_DEBUG_DATA_TRIGGER_PATTERN|DO_TEST_DEBUG_EDGE_TRIGGER_MASK|DO_TEST_DEBUG_EDGE_TRIGGER_PATTERN|DO_TEST_DEBUG_INDEX|DO_TEST_DEBUG_OUT_CNTL|DO_TEST_DEBUG_OUT_PIN_MASK|DO_TEST_DEBUG_OUT_TEST_DATA|DO_TEST_DEBUG_TRIGGER_CNTL|DO_TEST_DEBUG_TRIGGER_STAT|DVOACLK_CNTL|EXTERN_TRIG_CNTL|FB_SIZE|FB_START|FPLL_CNTL_REG|FSB_STOP_CLK_REG|GFX_COPY_STATE|GRAS_CONTROL|GRAS_UCP0X|GRAS_UCP5W|GRAS_UCP_ENABLED|HZ_PERFCOUNTER0_HI|HZ_PERFCOUNTER0_LOW|HZ_PERFCOUNTER0_SELECT|HZ_PERFCOUNTER1_HI|HZ_PERFCOUNTER1_LOW|HZ_PERFCOUNTER1_SELECT|MASTER_INT_SIGNAL|MCLK_CNTL1_REG|MCLK_PWRMGT_CNTL_REG|MCLK_TEST_CNTL1_REG|MDLL_CNTL1_REG|MPASS_PS_CP_REFETCH|MPASS_PS_INCR_START|MPASS_PS_RST_START|MPLL_CNTL_REG|NQWAIT_UNTIL|PCLK_SOFT_RESET|PERFCOUNTER_START|PERFCOUNTER_STOP|PGL_CTL0|PGL_CTL1|PSRO_REG|PS_DEALLOC|PS_DONE_TS|RCLK_PWRMGT_CNTL_REG|REXGPU_SWIZZLE_0000|REXGPU_SWIZZLE_1|REXGPU_SWIZZLE_RGBA|REXGPU_SWIZZLE_RGBB|REXGPU_SWIZZLE_RGGG|REXGPU_SWIZZLE_RRRR|REXGPU_SWIZZLE_W|REXGPU_SWIZZLE_X|REXGPU_SWIZZLE_Y|REXGPU_SWIZZLE_Z|ROM_BAD_PIPE_DISABLE_REGISTER|ROM_BAD_PIPE_FUSE_REG|ROM_CLK_REG|ROM_PADS_REG|ROM_PAR_ADDR_REG|ROM_PAR_DATA_REG|ROM_PORT_REG|ROM_SIMD_PIPE_DISABLE_REGISTER|ROM_STATUS_REG|RPLL_CNTL_REG|RST_PIX_CNT|RST_VTX_CNT|SCLK_G_DCP_CNTL|SCLK_G_SCL1_CNTL|SCLK_PWRMGT_CNTL1_REG|SCLK_PWRMGT_CNTL2_REG|SCLK_PWRMGT_CNTL3_REG|SCLK_SOFT_RESET|SCRATCH_ADDR|SCRATCH_CMP_CNTL|SCRATCH_CMP_HI|SCRATCH_CMP_LO|SCRATCH_REG0|SCRATCH_REG1|SCRATCH_REG2|SCRATCH_REG3|SCRATCH_REG6|SCRATCH_REG7|SCRATCH_UMSK|SCREEN_EXT_INIT|SCREEN_EXT_RPT|SC_WAIT_WC|SOFT_STRAP_CNTL|SPLL_CNTL_REG|SX_PERFCOUNTER0_HI|SX_PERFCOUNTER0_LOW|SX_PERFCOUNTER0_SELECT|SX_PERFCOUNTER1_HI|SX_PERFCOUNTER1_LOW|SX_PERFCOUNTER1_SELECT|SX_PERFCOUNTER2_HI|SX_PERFCOUNTER2_LOW|SX_PERFCOUNTER2_SELECT|SX_PERFCOUNTER3_HI|SX_PERFCOUNTER3_LOW|SX_PERFCOUNTER3_SELECT|TCM_CHICKEN|TCM_PERFCOUNTER0_HI|TCM_PERFCOUNTER0_LOW|TCM_PERFCOUNTER0_SELECT|TCM_PERFCOUNTER1_HI|TCM_PERFCOUNTER1_LOW|TCM_PERFCOUNTER1_SELECT|TCR_CHICKEN|TCR_PERFCOUNTER0_HI|TCR_PERFCOUNTER0_LOW|TCR_PERFCOUNTER0_SELECT|TCR_PERFCOUNTER1_HI|TCR_PERFCOUNTER1_LOW|TCR_PERFCOUNTER1_SELECT|TEST_COUNT_CNTL|TILE_FLUSH|TP0_CHICKEN|TP0_CNTL_STATUS|TP0_DEBUG|TP0_PERFCOUNTER0_HI|TP0_PERFCOUNTER0_LOW|TP0_PERFCOUNTER0_SELECT|TP0_PERFCOUNTER1_HI|TP0_PERFCOUNTER1_LOW|TP0_PERFCOUNTER1_SELECT|TP1_CHICKEN|TP1_CNTL_STATUS|TP1_DEBUG|TP1_PERFCOUNTER0_HI|TP1_PERFCOUNTER0_LOW|TP1_PERFCOUNTER0_SELECT|TP1_PERFCOUNTER1_HI|TP1_PERFCOUNTER1_LOW|TP1_PERFCOUNTER1_SELECT|TP2_CHICKEN|TP2_CNTL_STATUS|TP2_DEBUG|TP2_PERFCOUNTER0_HI|TP2_PERFCOUNTER0_LOW|TP2_PERFCOUNTER0_SELECT|TP2_PERFCOUNTER1_HI|TP2_PERFCOUNTER1_LOW|TP2_PERFCOUNTER1_SELECT|TP3_CHICKEN|TP3_CNTL_STATUS|TP3_DEBUG|TP3_PERFCOUNTER0_HI|TP3_PERFCOUNTER0_LOW|TP3_PERFCOUNTER0_SELECT|TP3_PERFCOUNTER1_HI|TP3_PERFCOUNTER1_LOW|TP3_PERFCOUNTER1_SELECT|TPC_CHICKEN|TPC_CNTL_STATUS|TPC_DEBUG0|TPC_DEBUG1|TP_DEBUG0|TP_TC_CLKGATE_CNTL|UNKNOWN_0A02|UNKNOWN_0A03|UNKNOWN_0A04|UNKNOWN_0A05|UNKNOWN_0E00|UNKNOWN_0E40|UNKNOWN_0E42|UNKNOWN_2290|UNKNOWN_2291|UNKNOWN_230B|UNKNOWN_230C|UNKNOWN_230D|UNKNOWN_230E|UNKNOWN_230F|UNKNOWN_2310|UNKNOWN_2311|UNKNOWN_2313|UNKNOWN_2314|VC_CNTL_STATUS|VC_DEBUG_CNTL|VC_DEBUG_DATA|VC_ENHANCE|VC_PERFCOUNTER0_HI|VC_PERFCOUNTER0_LOW|VC_PERFCOUNTER0_SELECT|VC_PERFCOUNTER1_HI|VC_PERFCOUNTER1_LOW|VC_PERFCOUNTER1_SELECT|VC_PERFCOUNTER2_HI|VC_PERFCOUNTER2_LOW|VC_PERFCOUNTER2_SELECT|VC_PERFCOUNTER3_HI|VC_PERFCOUNTER3_LOW|VC_PERFCOUNTER3_SELECT|VIZQUERY_END|VIZQUERY_START|VS_DEALLOC|VS_DONE_TS|VS_FETCH_DONE_TS|WAIT_UNTIL|XDVO_2ND_CRC_CNTL|XDVO_2ND_CRC_EN|XDVO_2ND_CRC_MASK_SIG|XDVO_2ND_CRC_SIG|XDVO_BIT_DEPTH_CONTROL|XDVO_CLOCK_INV|XDVO_CONTROL|XDVO_CRC_CNTL|XDVO_CRC_EN|XDVO_CRC_MASK_SIG_CNTL|XDVO_CRC_MASK_SIG_RGB|XDVO_CRC_SIG_CNTL|XDVO_CRC_SIG_RGB|XDVO_DATA_STRENGTH_CONTROL|XDVO_ENABLE|XDVO_FORCE_DATA|XDVO_FORCE_OUTPUT_CNTL|XDVO_REGISTER_DATA|XDVO_REGISTER_INDEX|XDVO_STRENGTH_CONTROL|YCLK_CNTL1_REG|ZPASS_DONE|add|addi|addis|and_|b|ba|bc|bca|bcctr|bcctrl|bcl|bcla|bclr|bclrl|bl|bla|cmpi|cmpli|k_ABGR_Black|k_ABGR_White|k_ACBCRY_Black|k_ACBYCR_Black|k_CTX1|k_Cr_Y1_Cb_Y0_REP|k_DXN|k_DXT1|k_DXT1_AS_16_16_16_16|k_DXT2_3|k_DXT2_3_AS_16_16_16_16|k_DXT3A|k_DXT3A_AS_1_1_1_1|k_DXT4_5|k_DXT4_5_AS_16_16_16_16|k_DXT5A|k_Y1_Cr_Y0_Cb_REP|lbz|lbzx|lhz|lhzx|li|lis|lwz|lwzx|mfctr|mflr|mfspr|mr|mtctr|mtlr|mtspr|nop|or_|ori|rlwinm|sc|slw|sraw|srawi|srw|stwu|subf|tw|twi|xor_)$|^XFile[A-Z][A-Za-z0-9_]*$|^(CP|D1CRTC|D1GRPH|DC|MC0|MC1|MH|PA|PM4|RB|RBBM|RTS|SHADER|SQ|TCF|VGT)_[A-Z0-9_]+$|^k_[0-9][0-9A-Za-z_]*$'
  # kernel export names are frozen, rexshim_ names are generated by codegen from the guest import names, standard style utility functions, C linkage names that assembly or the module ABI resolve by name, named by the C++ standard
  - key: readability-identifier-naming.FunctionIgnoredRegexp
    value: '^(bit_scan_forward|byte_swap|clamp_float|copy_and_swap|copy_and_swap_16_aligned|copy_and_swap_16_in_32_aligned|copy_and_swap_16_in_32_unaligned|copy_and_swap_16_unaligned|copy_and_swap_32_aligned|copy_and_swap_32_unaligned|copy_and_swap_64_aligned|copy_and_swap_64_unaligned|from_string|hash_combine|is_pow2|load|load_and_swap|log2_ceil|log2_floor|lzcnt|m128_f32|m128_f64|m128_i32|m128_i64|make_fourcc|mul_div|next_pow2|reduce_fraction|rex_redirect_stub|rex_test_spin_leaf|rex_test_spin_prologue|rexmod_test_null_gpu_fail_textures|saturate|select_bits|stack_align|stack_bounds_check|store|store_and_swap|swap|to_hex_string|to_path|to_string|tzcnt|vec128b|vec128d|vec128f|vec128i|vec128q|vec128s)$|^(utf8)_[a-z0-9_]+$|^__imp__[A-Za-z0-9_]+$|^[A-Za-z0-9_]+_entry$|^rexshim_.*$'
  # linker symbols
  - key: readability-identifier-naming.GlobalConstantIgnoredRegexp
    value: '^(__ImageBase|__start_rexguest|__stop_rexguest|powerpc_num_opcodes|powerpc_opcodes)$'
  # names generated by Tracy's zone macros
  - key: readability-identifier-naming.LocalVariableIgnoredRegexp
    value: '^(___tracy_cpu_zone|___tracy_cpu_zone_d|___tracy_cpu_zone_i|___tracy_hook_zone)$'
  # read by the Windows SDK headers
  - key: readability-identifier-naming.MacroDefinitionIgnoredRegexp
    value: '^(_WINSOCK_DEPRECATED_NO_WARNINGS)$'
  # named by the C++ standard, accessors, Xenos and PowerPC documentation names
  - key: readability-identifier-naming.MethodIgnoredRegexp
    value: '^(begin|convert|data|empty|end|format|from_sys|get|get32|get64|hash|lock|lock_shared|now|parse|peek|put|size|skip|swap|to_sys|try_lock|unlock|unlock_shared)$|^Execute[A-Z][A-Za-z0-9_]*$'
  # the CLI11 namespace
  - key: readability-identifier-naming.NamespaceIgnoredRegexp
    value: '^(CLI)$'
  # Win32 and MSVC EH mirror fields, Xenos and PowerPC documentation names
  - key: readability-identifier-naming.ParameterIgnoredRegexp
    value: '^(Flags|bFailIfExists|dwBytes|dwCreationDisposition|dwDesiredAccess|dwFileAttributes|dwFlags|dwFlagsAndAttributes|dwMoveMethod|dwShareMode|dwStackSize|fInfoLevelId|hFile|hFindFile|hHeap|hObject|hTemplateFile|hThread|lDistanceToMove|lpBuffer|lpCreationTime|lpDirectoryName|lpDistanceToMoveHigh|lpExistingFileName|lpFiber|lpFileInformation|lpFileName|lpFileSize|lpFileSizeHigh|lpFileTime1|lpFileTime2|lpFindFileData|lpFreeBytesAvailableToCaller|lpLastAccessTime|lpLastWriteTime|lpNewFileName|lpNewFilePointer|lpNumberOfBytesRead|lpNumberOfBytesWritten|lpOverlapped|lpParameter|lpPathName|lpSecurityAttributes|lpStartAddress|lpThreadDescription|lpTotalNumberOfBytes|lpTotalNumberOfFreeBytes|nNumberOfBytesToRead|nNumberOfBytesToWrite|nOut|pDebug|ppFactory)$'
  # Win32 and MSVC EH mirror fields, Xenos and PowerPC documentation names, Vulkan function and extension names the loader resolves by string
  - key: readability-identifier-naming.PublicMemberIgnoredRegexp
    value: '^(A|AA|AddressOfFunctions|AddressOfNameOrdinals|AddressOfNames|B|BD|BI|BO|Base|Characteristics|D|DS|ExEventObjectType|ExMutantObjectType|ExSemaphoreObjectType|ExThreadObjectType|ExTimerObjectType|FRA|FRB|FRC|FRT|I|IoCompletionObjectType|IoDeviceObjectType|IoFileObjectType|LI|LK|M|MB|MD|ME|MajorVersion|MinorVersion|Name|NumberOfFunctions|NumberOfNames|OE|ObDirectoryObjectType|ObSymbolicLinkObjectType|RA|RB|RS|RT|Rc|SH|SPR|StencilFail_A|StencilFail_B|TimeDateStamp|Total_A|Total_B|UsbdBootEnumerationDoneEvent|VA|VMX128|VRA|VRB|VRC|VRT|VX|VXR|X|XFX|XL|XO|ZFail_A|ZFail_B|ZPass_A|ZPass_B|abEnet|abOnline|apiVersion|cfgFlags|cfgKeyRegMax|cfgQosDataLimitDiv4|cfgQosPairWaitTimeInSeconds|cfgQosProbeRetries|cfgQosProbeTimeoutInSeconds|cfgQosSrvMaxSimultaneousResponses|cfgSecRegMax|cfgSizeOfStruct|cfgSockDefaultRecvBufsizeInK|cfgSockDefaultSendBufsizeInK|cfgSockMaxDgramSockets|cfgSockMaxStreamSockets|constantAlphaColorBlendFactors|customBorderColorWithoutFormat|customBorderColors|depthClamp|deviceID|deviceName|driverID|driverVersion|dwFlags|dwPaddingReserved|dwThreadID|dwType|dynamicRendering|ext_1_1_KHR_bind_memory2|ext_1_1_KHR_dedicated_allocation|ext_1_1_KHR_get_memory_requirements2|ext_1_1_KHR_get_physical_device_properties2|ext_1_1_KHR_sampler_ycbcr_conversion|ext_1_2_KHR_image_format_list|ext_1_2_KHR_spirv_1_4|ext_1_3_KHR_dynamic_rendering|ext_1_3_KHR_maintenance4|ext_EXT_custom_border_color|ext_EXT_debug_utils|ext_EXT_memory_budget|ext_EXT_robustness2|ext_EXT_shader_stencil_export|ext_KHR_portability_enumeration|ext_KHR_surface|ext_KHR_swapchain|ext_KHR_wayland_surface|ext_KHR_win32_surface|ext_KHR_xcb_surface|fillModeNonSolid|fragmentShaderPixelInterlock|fragmentShaderSampleInterlock|fragmentStoresAndAtomics|framebufferColorSampleCounts|framebufferDepthSampleCounts|framebufferNoAttachmentsSampleCounts|framebufferStencilSampleCounts|fullDrawIndexUint32|geometryShader|imageViewFormatReinterpretation|imageViewFormatSwizzle|inaOnline|independentBlend|minStorageBufferOffsetAlignment|minUniformBufferOffsetAlignment|nonCoherentAtomSize|nonSeamlessCubeMap|nullDescriptor|occlusionQueryPrecise|optimalBufferCopyOffsetAlignment|optimalBufferCopyRowPitchAlignment|pClassHierarchy|pTypeDescriptor|pVFTable|pointPolygons|robustBufferAccess|sampleRateShading|sampledImageColorSampleCounts|sampledImageDepthSampleCounts|sampledImageIntegerSampleCounts|sampledImageStencilSampleCounts|samplerAnisotropy|samplerMirrorClampToEdge|scalarBlockLayout|separateStencilMaskRef|shaderClipDistance|shaderCullDistance|shaderDemoteToHelperInvocation|shaderDenormFlushToZeroFloat32|shaderRoundingModeRTEFloat32|shaderSampleRateInterpolationFunctions|shaderSignedZeroInfNanPreserveFloat32|sparseBinding|sparseResidencyBuffer|standardSampleLocations|szName|tessellationShader|uniformBufferStandardLayout|vendorID|vertexPipelineStoresAndAtomics|vkAcquireNextImageKHR|vkAllocateCommandBuffers|vkAllocateDescriptorSets|vkAllocateMemory|vkBeginCommandBuffer|vkBindBufferMemory|vkBindBufferMemory2|vkBindImageMemory|vkBindImageMemory2|vkEndCommandBuffer|vkEnumerateDeviceExtensionProperties|vkEnumerateInstanceExtensionProperties|vkEnumerateInstanceLayerProperties|vkEnumerateInstanceVersion|vkEnumeratePhysicalDevices|vkFlushMappedMemoryRanges|vkFreeMemory|vkInvalidateMappedMemoryRanges|vkMapMemory|vkQueueBindSparse|vkQueuePresentKHR|vkQueueSubmit|vkResetCommandPool|vkResetDescriptorPool|vkResetFences|vkSetDebugUtilsObjectNameEXT|vkUnmapMemory|vkUpdateDescriptorSets|vkWaitForFences|wPortOnline)$|^(max|vkCmd|vkCreate|vkDestroy|vkGet)[A-Z][A-Za-z0-9_]*$'
  # rex primitive types, XDK and Win32 mirror types, the binutils ppc_insn type, the POSIX sockaddr type
  - key: readability-identifier-naming.StructIgnoredRegexp
    value: '^(N_XSOCKADDR|N_XSOCKADDR_IN|THREADNAME_INFO|XAPC_DISPATCH_ARGS|XCONTENT_AGGREGATE_DATA|XCONTENT_DATA|XECRYPT_AES_STATE|XECRYPT_DES3_STATE|XECRYPT_DES_STATE|XECRYPT_HMACMD5_STATE|XECRYPT_HMACSHA_STATE|XECRYPT_MD5_STATE|XECRYPT_RC4_STATE|XECRYPT_RSA|XECRYPT_SHA256_STATE|XECRYPT_SHA512_STATE|XECRYPT_SHA_STATE|XMA_CONTEXT_DATA|XMA_CONTEXT_INIT|XMA_LOOP_DATA|XMP_SONG_IN|XMP_SONG_INFO|XMSGSTARTIOREQUEST_UNKNOWNARG|XSOCKADDR_IN|XTASK_MESSAGE|X_ACHIEVEMENT_DETAILS|X_ACHIEVEMENT_UNLOCK_TIME|X_ANSI_STRING|X_CONTENT_DEVICE_DATA|X_D3DFILTER_PARAMETERS|X_D3DPRIVATE_RECT|X_D3DPRIVATE_SCALER_PARAMETERS|X_DISK_CACHE_GEOMETRY|X_DISK_CACHE_PARTITION|X_DISPATCH_HEADER|X_DISPLAY_INFO|X_ERWLOCK|X_EXCEPTION_RECORD|X_EX_TITLE_TERMINATE_REGISTRATION|X_FIBER_CONTEXT|X_FILE_ALLOCATION_INFORMATION|X_FILE_BASIC_INFORMATION|X_FILE_COMPLETION_INFORMATION|X_FILE_DISPOSITION_INFORMATION|X_FILE_END_OF_FILE_INFORMATION|X_FILE_FS_ATTRIBUTE_INFORMATION|X_FILE_FS_DEVICE_INFORMATION|X_FILE_FS_SIZE_INFORMATION|X_FILE_FS_VOLUME_INFORMATION|X_FILE_INTERNAL_INFORMATION|X_FILE_NETWORK_OPEN_INFORMATION|X_FILE_POSITION_INFORMATION|X_FILE_RENAME_INFORMATION|X_FILE_XCTD_COMPRESSION_INFORMATION|X_HARDWARE_INFO|X_IMAGE_EXPORT_DIRECTORY|X_INPUT_CAPABILITIES|X_INPUT_GAMEPAD|X_INPUT_KEYSTROKE|X_INPUT_STATE|X_INPUT_VIBRATION|X_IO_STATUS_BLOCK|X_KDPC|X_KENUMERATOR|X_KENUMERATOR_CONTENT_AGGREGATE|X_KERNEL_VERSION|X_KEVENT|X_KE_TIMESTAMP_BUNDLE|X_KINTERRUPT|X_KMUTANT|X_KPCR|X_KPRCB|X_KPROCESS|X_KSEMAPHORE|X_KSPINLOCK|X_KTHREAD|X_KTIMER|X_KWAIT_BLOCK|X_LDR_DATA_TABLE_ENTRY|X_LIST_ENTRY|X_MEMORY_BASIC_INFORMATION|X_MM_QUERY_STATISTICS_RESULT|X_MM_QUERY_STATISTICS_SECTION|X_NUI_DEVICE_STATUS|X_OBJECT_ATTRIBUTES|X_OBJECT_HEADER|X_OBJECT_TYPE|X_POOL_ALLOC_HEADER|X_RTL_CRITICAL_SECTION|X_SINGLE_LIST_ENTRY|X_SLIST_HEADER|X_THREADNAME_INFO|X_THREAD_NOTIFICATION|X_TIME_FIELDS|X_TYPED_LIST|X_UNICODE_STRING|X_UNKNOWN_TYPE_REFED|X_USER_PROFILE_SETTING|X_USER_PROFILE_SETTING_DATA|X_USER_READ_PROFILE_SETTINGS|X_USER_SIGNIN_INFO|X_VIDEO_MODE|X_WSADATA|Xsockaddr_t|be_ptr|powerpc_opcode|ppc_insn|sockaddr|x_fd_set)$'
  # named by the C++ standard, rex primitive types, XDK and Win32 mirror types
  - key: readability-identifier-naming.TypeAliasIgnoredRegexp
    value: '^(X_HANDLE|X_HRESULT|X_RESULT|X_STATUS|be_f32|be_f64|be_i16|be_i32|be_i64|be_i8|be_u16|be_u32|be_u64|be_u8|clock|difference_type|duration|element_type|f32|f64|host_addr_t|i16|i32|i64|i8|iterator_category|period|pointer|reference|rep|time_point|type|u16|u32|u64|u8|value_type)$'
...
