<?xml version="1.0" encoding="utf-8"?>
<rules version="1.0">

<rule>
    <id>
        Renamed_Field
    </id>
    <severity>
        High
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target has been renamed to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: @type_name has no member named @target.
    </effect>
</rule>

<rule>
    <id>
        Used_Reserved_Field
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Reserved field @target has been replaced by @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Type
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Type of field @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Pure_Virtual_Method
    </id>
    <severity>
        High
    </severity>
    <kind>
        V-table
    </kind>
    <change>
        Pure virtual method @target has been added to this class.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type @type_name because the following virtual functions are pure within @type_name: virtual @target.
    </effect>
</rule>

<rule>
    <id>
        Removed_Pure_Virtual_Method
    </id>
    <severity>
        High
    </severity>
    <kind>
        V-table
    </kind>
    <change>
        Pure virtual method @target has been removed from this class.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Overridden_Virtual_Method
    </id>
    <severity>
        Low
    </severity>
    <kind>
        V-table
    </kind>
    <change>
        Virtual method @old_value has been overridden by @new_value.
    </change>
    <effect>
        Method @new_value will be called after recompilation instead of @old_value.
    </effect>
</rule>

<rule>
    <id>
        Overridden_Virtual_Method_B
    </id>
    <severity>
        Low
    </severity>
    <kind>
        V-table
    </kind>
    <change>
        Virtual method @old_value has been overridden by @new_value.
    </change>
    <effect>
        Method @new_value will be called after recompilation instead of @old_value.
    </effect>
</rule>

<rule>
    <id>
        Added_Base_Class
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Classes
    </kind>
    <change>
        Base class @target has been added.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Removed_Base_Class
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Classes
    </kind>
    <change>
        Base class @target has been removed.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        DataType_Type
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Type of this type has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Moved_Field
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        The relative position of field @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Added_Field
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target has been added to this type.
    </change>
    <effect>
        This field will not be initialized or used by old client applications.
    </effect>
</rule>

<rule>
    <id>
        Added_Union_Field
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target has been added to this type.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Removed_Field
    </id>
    <severity>
        High
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target has been removed from this type.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@type_name' has no member named '@target'.
    </effect>
</rule>

<rule>
    <id>
        Removed_Union_Field
    </id>
    <severity>
        High
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target has been removed from this union.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Enum_Member_Value
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        Value of member @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Enum_Last_Member_Value
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        Value of member @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Enum_Private_Member_Value
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        Value of private member @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Enum_Member_Removed
    </id>
    <severity>
        High
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        The member @target has been removed.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Enum_Member_Name
    </id>
    <severity>
        High
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        Name of member with value @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@old_value' was not declared in this scope.
    </effect>
</rule>

<rule>
    <id>
        Field_BaseType
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Base type of field @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Field_PointerLevel
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        The pointer level of field @target has been increased from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Typedef_BaseType
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Base type has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Typedef_BaseType_Format
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Base type has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Symbol
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
</rule>

<rule>
    <id>
        Removed_Symbol
    </id>
    <severity>
        High
    </severity>
    <kind>
        Symbols
    </kind>
</rule>

<rule>
    <id>
        Method_Became_Static
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became static.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Non_Static
    </id>
    <severity>
        High
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became non-static.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: cannot call member function @target without object.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Default_Value_Changed
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        The default argument of @param_pos parameter @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Default_Value_Removed
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        The default argument @old_value of @param_pos parameter @target has been removed.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Default_Value_Added
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        The default argument @new_value of @param_pos parameter @target has been added.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Type
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of @param_pos parameter @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Type_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of parameter @target has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_BaseType_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Base type of parameter @target has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_BaseType
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Base type of @param_pos parameter @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_Non_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of @param_pos parameter @target has been changed from @old_value to @new_value (became non-const).
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Removed_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of @param_pos parameter @target has been changed from @old_value to @new_value (removed const qualifier).
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type_Became_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of return value became const (has been changed from @old_value to @new_value).
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type_Added_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Added **const** qualifier to return value (has been changed from @old_value to @new_value).
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_PointerLevel
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        The pointer level of @param_pos parameter @target has been increased from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of return value has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type_From_Void
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of return value has been changed from void to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Type
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of this global data has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Type_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of this global data has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type_Became_Void
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of return value has been changed from @old_value (@old_size) to void.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Became_Non_Const
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This global data became non-const.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Removed_Const
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Removed **const** qualifier from the type of this global data.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Became_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This global data became const.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Added_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Added **const** qualifier to the type of this global data.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_BaseType
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Base type of return value has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_PointerLevel
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        The pointer level of return value has been increased from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Removed_Parameter
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        @param_pos parameter @target has been removed from the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Removed_Unnamed_Parameter
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Parameter @target of type @param_type has been removed from the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Parameter
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Parameter @target of type @param_type has been added to the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Unnamed_Parameter
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        @param_pos parameter @target has been added to the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Removed_Middle_Parameter
    </id>
    <severity>
        High
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        @param_pos middle parameter @target has been removed from the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Removed_Middle_Unnamed_Parameter
    </id>
    <severity>
        High
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Middle parameter @target of type @param_type has been removed from the calling stack.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Middle_Parameter
    </id>
    <severity>
        High
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Parameter @target of type @param_type has been added to the calling stack at the middle position.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Middle_Unnamed_Parameter
    </id>
    <severity>
        High
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        @param_pos parameter @target has been added to the calling stack at the middle position.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Renamed_Parameter
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        @param_pos parameter @target has been renamed to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Changed_Constant
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        The value of constant @target has been changed from @old_value to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Added_Constant
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        The constant @target with value @new_value has been added.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Removed_Constant
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        The constant @target with value @old_value has been removed.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Field_Type_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Type of field @target has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Field_BaseType_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Base type of field @target has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_Type_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Type of return value has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Return_BaseType_Format
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Base type of return value has been changed from @old_value to @new_value of different format.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_Non_VaList
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of @param_pos parameter has been changed from ... (va_list) to @new_value.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_VaList
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Type of @param_pos parameter @target has been changed from @old_value to ... (va_list).
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Added_Enum_Member
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Constants
    </kind>
    <change>
        The member @target with value @new_value has been added.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Symbol_Changed_Parameters
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Parameters list has been changed.
    </change>
    <effect>
        Recompilation of a client program may be broken.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Non_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became non-const.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: passing 'const @type_name' as 'this' argument of '@target' discards qualifiers.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Const
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became const.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Non_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Method became non-volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_Restrict
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Parameter @target became restrict.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_Non_Restrict
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Parameters
    </kind>
    <change>
        Parameter @target became non-restrict.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target became volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Non_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target became non-volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Return_Value_Became_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Return value became volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Parameter_Became_Non_Volatile
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        Parameter @target became non-volatile.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Value_Changed
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        The initial value of this global data has been changed from @old_value to @new_value.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Mutable
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target became **mutable**.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Non_Mutable
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Fields
    </kind>
    <change>
        Field @target became **non-mutable**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: assignment of member '@type_name::@target' in read-only object.
    </effect>
</rule>

<rule>
    <id>
        Removed_Const_Overload
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        The **const** overload of the method @target has been removed from this class.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: passing 'const @type_name' as 'this' argument of '@target' discards qualifiers.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Private
    </id>
    <severity>
        High
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This method became **private**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@target' is private.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Protected
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This method became **protected**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@target' is protected.
    </effect>
</rule>

<rule>
    <id>
        Method_Became_Public
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This method became **public**.
    </change>
    <effect>
        No effect. 
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Became_Private
    </id>
    <severity>
        High
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This global data became **private**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@target' is private.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Became_Protected
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This global data became **protected**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@target' is protected.
    </effect>
</rule>

<rule>
    <id>
        Global_Data_Became_Public
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Symbols
    </kind>
    <change>
        This global data became **public**.
    </change>
    <effect>
        No effect. 
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Const
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Field @target became **const**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: assignment of read-only member/location '@type_name::@target'.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Non_Const
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Field @target became **non-const**.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Added_Const
    </id>
    <severity>
        Low
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Added **const** qualifier to field @target.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: assignment of read-only member/location '@type_name::@target'.
    </effect>
</rule>

<rule>
    <id>
        Field_Removed_Const
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Removed **const** qualifier from field @target.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Private
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Field @target became **private**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@type_name::@target' is private.
    </effect>
</rule>

<rule>
    <id>
        Field_Became_Protected
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Field @target became **protected**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: '@type_name::@target' is protected.
    </effect>
</rule>

<rule>
    <id>
        Virtual_Method_Became_Pure
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Virtual method @target became **pure**.
    </change>
    <effect>
        Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type '@type_name' because the following virtual functions are pure within '@type_name': virtual @target.
    </effect>
</rule>

<rule>
    <id>
        Virtual_Method_Became_Non_Pure
    </id>
    <severity>
        Safe
    </severity>
    <kind>
        Types
    </kind>
    <change>
        Virtual method @target became **non-pure**.
    </change>
    <effect>
        No effect.
    </effect>
</rule>

<rule>
    <id>
        Type_Became_Opaque
    </id>
    <severity>
        Medium
    </severity>
    <kind>
        Types
    </kind>
    <change>
        This type became **opaque**.
    </change>
    <effect>
        The internal structure of this type is hidden in the new library version and recompilation of a client program may be broken.
    </effect>
</rule>

</rules>
