Level 1: Obsolete Messages

Dataflow - Conversion to signed

MessageMessage Text
0272 [I] Apparent conversion of integer expression to a signed integer type which cannot represent the value.
0273 [I] Definite conversion of integer expression to a signed integer type which cannot represent the value.
0274 [I] Implicit conversion of integer constant expression to a signed integer type which cannot represent the value.
0280 Implicit conversion of constant negative value which assumes a two's complement representation of signed values.
0281 Definite use of a negative value which assumes a two's complement representation of signed values.
0282 Apparent use of a negative value which assumes a two's complement implementation of signed values.
0974 [I] Cast of integer constant expression to a signed integer type which cannot represent the value.
0980 Cast of constant negative value which assumes a two's complement representation of signed values.

Dataflow - Conversion to unsigned

MessageMessage Text
0277 Implicit conversion of a constant negative value to an unsigned type.
0290 Definite conversion of a negative value to an unsigned type.
0291 Apparent conversion of a negative value to an unsigned type.
0977 Cast of a constant negative value to an unsigned type.
3290 Truncation of positive constant integer value during cast to a smaller unsigned type.
3296 Definite truncation of positive integer value during implicit conversion to a smaller unsigned type.
3297 Apparent truncation of positive integer value during implicit conversion to a smaller unsigned type.
3306 Truncation of positive constant integer value during implicit conversion to a smaller unsigned type.

Dataflow - Shift operations

MessageMessage Text
0271 [U] Left shift operation on constant signed expression generating an undefined value.
0294 [U] Definite signed left shift operation generating an undefined value.
0295 [U] Apparent signed left shift operation generating an undefined value.
0500 [U] Right operand of shift operator is negative - this is undefined.
0501 [U] Right operand of shift operator is too large - this is undefined.
3301 Truncation of bits in an unsigned left shift operation on a constant value.
3371 Definite truncation of bits in an unsigned left shift operation.
3381 Apparent truncation of bits in an unsigned left shift operation.

Dataflow - Overflow and wraparound

MessageMessage Text
0278 [C] Overflow in signed arithmetic operation on constant operands.
0296 [U] Definite overflow in signed arithmetic operation.
0297 [U] Apparent overflow in signed arithmetic operation.
0584 Possible division by zero.
0585 [U] Apparent division by zero.
0586 [U] Division by constant zero.
0587 [U] Definite division by zero.
3302 Wraparound past zero in unsigned subtraction of constant operands.
3303 Wraparound past zero in unsigned addition of constant operands.
3304 Wraparound past zero in unsigned multiplication of constant operands.
3372 Definite wraparound past zero in an unsigned arithmetic operation.
3382 Apparent wraparound past zero in an unsigned arithmetic operation.

Dataflow - Arrays

MessageMessage Text
3680 [U] Access outside bounds of array using a constant array subscript.
3681 Use of a constant negative value in array subscript operation or pointer arithmetic.
3685 [U] Definite access outside bounds of array.
3686 Definite use of a negative value in array subscript operation or pointer arithmetic.
3689 [U] Apparent access outside bounds of array.
3690 Apparent use of a negative value in array subscript operation or pointer arithmetic.

Dataflow - Unset data

MessageMessage Text
3321 [U] The variable '%s' is definitely unset at this point.
3347 [U] The variable '%s' is apparently unset at this point.
3348 Definite use of unset pointer as an argument to a function which expects a read-only pointer.
3349 Apparent use of unset pointer as an argument to a function which expects a read-only pointer.
3353 The variable '%s' is possibly unset at this point.
3354 Possible use of unset pointer as an argument to a function which expects a read-only pointer.

Dataflow - NULL pointers

MessageMessage Text
0503 [U] Dereference of constant NULL pointer.
0504 [U] Definite dereference of NULL pointer.
0505 [U] Apparent dereference of NULL pointer.
0506 Possible dereference of NULL pointer.
0507 [u] Arithmetic operation on constant NULL pointer.
0508 [u] Definite arithmetic operation on NULL pointer.
0509 [u] Apparent arithmetic operation on NULL pointer.
0510 Possible arithmetic operation on NULL pointer.

Dataflow - Redundancy

MessageMessage Text
3195 The function parameter '%s' is always modified before use.
3197 This initialization is redundant. The value of '%s' is never used before being modified.
3198 This assignment is redundant. The value of '%s' is never used before being modified.
3199 This assignment is redundant. The value of '%s' is never subsequently used.

Dataflow - Invariant operations

MessageMessage Text
3323 This controlling expression has a constant 'true' value.
3325 This 'while' or 'for' loop controlling expression has a constant 'false' value.
3329 This 'if' controlling expression has a constant 'false' value.
3346 The controlling expression in this 'if' statement has a constant 'true' value.
3355 The result of this logical operation is always 'true'.
3356 The result of this logical operation is always 'false'.
3357 The value of this loop controlling expression is always 'true'.
3358 The value of this 'if' controlling expression is always 'true'.
3359 The value of this controlling expression is always 'false'.
3360 The value of this 'do - while' controlling expression is always 'false'. The loop will only be executed once.
3361 Using a 'do-while-zero' construct. The loop will only be executed once.

Dataflow - Control flow

MessageMessage Text
0689 [u] 'Switch' statement will bypass the initialization of this local variable.
0744 [U] '%s()' has been declared with a non void return type but ends with an implicit 'return ;' statement.
2006 '%s()' has more than one 'return' path.
2018 This 'switch' 'default' label is probably unreachable.
2465 This 'for' loop will only be executed once.
3201 This statement is unreachable.

Arithmetic type - Implicit conversions

MessageMessage Text
1276 An integer constant is being converted to floating type on assignment.
3700 Implicit conversion: char to signed char.
3701 Implicit conversion: char to unsigned char.
3702 Implicit conversion: char to short.
3703 Implicit conversion: char to unsigned short.
3704 Implicit conversion: char to int.
3705 Implicit conversion: char to unsigned int.
3706 Implicit conversion: char to long.
3707 Implicit conversion: char to unsigned long.
3708 Implicit conversion: char to float.
3709 Implicit conversion: char to double.
3710 Implicit conversion: char to long double.
3711 Implicit conversion: unsigned char to char.
3712 Implicit conversion: unsigned char to signed char.
3713 Implicit conversion: unsigned char to short.
3715 Implicit conversion: unsigned char to int.
3717 Implicit conversion: unsigned char to long.
3719 Implicit conversion: unsigned char to float.
3720 Implicit conversion: unsigned char to double.
3721 Implicit conversion: unsigned char to long double.
3722 Implicit conversion: signed char to char.
3723 Implicit conversion: signed char to unsigned char.
3725 Implicit conversion: signed char to unsigned short.
3727 Implicit conversion: signed char to unsigned int.
3729 Implicit conversion: signed char to unsigned long.
3730 Implicit conversion: signed char to float.
3731 Implicit conversion: signed char to double.
3732 Implicit conversion: signed char to long double.
3733 Implicit conversion: short to char.
3734 Implicit conversion: short to signed char.
3735 Implicit conversion: short to unsigned char.
3736 Implicit conversion: short to unsigned short.
3738 Implicit conversion: short to unsigned int.
3740 Implicit conversion: short to unsigned long.
3741 Implicit conversion: short to float.
3742 Implicit conversion: short to double.
3743 Implicit conversion: short to long double.
3744 Implicit conversion: unsigned short to char.
3745 Implicit conversion: unsigned short to signed char.
3746 Implicit conversion: unsigned short to unsigned char.
3747 Implicit conversion: unsigned short to short.
3748 Implicit conversion: unsigned short to int.
3750 Implicit conversion: unsigned short to long.
3752 Implicit conversion: unsigned short to float.
3753 Implicit conversion: unsigned short to double.
3754 Implicit conversion: unsigned short to long double.
3755 Implicit conversion: int to char.
3756 Implicit conversion: int to signed char.
3757 Implicit conversion: int to unsigned char.
3758 Implicit conversion: int to short.
3759 Implicit conversion: int to unsigned short.
3760 Implicit conversion: int to unsigned int.
3762 Implicit conversion: int to unsigned long.
3763 Implicit conversion: int to float.
3764 Implicit conversion: int to double.
3765 Implicit conversion: int to long double.
3766 Implicit conversion: unsigned int to char.
3767 Implicit conversion: unsigned int to signed char.
3768 Implicit conversion: unsigned int to unsigned char.
3769 Implicit conversion: unsigned int to short.
3770 Implicit conversion: unsigned int to unsigned short.
3771 Implicit conversion: unsigned int to int.
3772 Implicit conversion: unsigned int to long.
3774 Implicit conversion: unsigned int to float.
3775 Implicit conversion: unsigned int to double.
3776 Implicit conversion: unsigned int to long double.
3777 Implicit conversion: long to char.
3778 Implicit conversion: long to signed char.
3779 Implicit conversion: long to unsigned char.
3780 Implicit conversion: long to short.
3781 Implicit conversion: long to unsigned short.
3782 Implicit conversion: long to int.
3783 Implicit conversion: long to unsigned int.
3784 Implicit conversion: long to unsigned long.
3785 Implicit conversion: long to float.
3786 Implicit conversion: long to double.
3787 Implicit conversion: long to long double.
3788 Implicit conversion: unsigned long to char.
3789 Implicit conversion: unsigned long to signed char.
3790 Implicit conversion: unsigned long to unsigned char.
3791 Implicit conversion: unsigned long to short.
3792 Implicit conversion: unsigned long to unsigned short.
3793 Implicit conversion: unsigned long to int.
3794 Implicit conversion: unsigned long to unsigned int.
3795 Implicit conversion: unsigned long to long.
3796 Implicit conversion: unsigned long to float.
3797 Implicit conversion: unsigned long to double.
3798 Implicit conversion: unsigned long to long double.
3799 Implicit conversion: float to char.
3800 Implicit conversion: float to signed char.
3801 Implicit conversion: float to unsigned char.
3802 Implicit conversion: float to short.
3803 Implicit conversion: float to unsigned short.
3804 Implicit conversion: float to int.
3805 Implicit conversion: float to unsigned int.
3806 Implicit conversion: float to long.
3807 Implicit conversion: float to unsigned long.
3810 Implicit conversion: double to char.
3811 Implicit conversion: double to signed char.
3812 Implicit conversion: double to unsigned char.
3813 Implicit conversion: double to short.
3814 Implicit conversion: double to unsigned short.
3815 Implicit conversion: double to int.
3816 Implicit conversion: double to unsigned int.
3817 Implicit conversion: double to long.
3818 Implicit conversion: double to unsigned long.
3819 Implicit conversion: double to float.
3821 Implicit conversion: long double to char.
3822 Implicit conversion: long double to signed char.
3823 Implicit conversion: long double to unsigned char.
3824 Implicit conversion: long double to short.
3825 Implicit conversion: long double to unsigned short .
3826 Implicit conversion: long double to int.
3827 Implicit conversion: long double to unsigned int.
3828 Implicit conversion: long double to long.
3829 Implicit conversion: long double to unsigned long.
3830 Implicit conversion: long double to float.
3831 Implicit conversion: long double to double.
3832 Implicit conversion: char to long long.
3833 Implicit conversion: char to unsigned long long.
3834 Implicit conversion: unsigned char to long long.
3837 Implicit conversion: signed char to unsigned long long.
3839 Implicit conversion: short to unsigned long long.
3840 Implicit conversion: unsigned short to long long.
3843 Implicit conversion: int to unsigned long long.
3844 Implicit conversion: unsigned int to long long.
3847 Implicit conversion: long to unsigned long long.
3848 Implicit conversion: unsigned long to long long.
3850 Implicit conversion: long long to char.
3851 Implicit conversion: long long to signed char.
3852 Implicit conversion: long long to unsigned char.
3853 Implicit conversion: long long to short.
3854 Implicit conversion: long long to unsigned short.
3855 Implicit conversion: long long to int.
3856 Implicit conversion: long long to unsigned int.
3857 Implicit conversion: long long to long
3858 Implicit conversion: long long to unsigned long.
3859 Implicit conversion: long long to unsigned long long.
3860 Implicit conversion: long long to float.
3861 Implicit conversion: long long to double.
3862 Implicit conversion: long long to long double.
3863 Implicit conversion: unsigned long long to char.
3864 Implicit conversion: unsigned long long to signed char.
3865 Implicit conversion: unsigned long long to unsigned char.
3866 Implicit conversion: unsigned long long to short.
3867 Implicit conversion: unsigned long long to unsigned short.
3868 Implicit conversion: unsigned long long to int.
3869 Implicit conversion: unsigned long long to unsigned int.
3870 Implicit conversion: unsigned long long to long.
3871 Implicit conversion: unsigned long long to unsigned long.
3872 Implicit conversion: unsigned long long to long long.
3873 Implicit conversion: unsigned long long to float.
3874 Implicit conversion: unsigned long long to double.
3875 Implicit conversion: unsigned long long to long double.
3876 Implicit conversion: float to long long.
3877 Implicit conversion: float to unsigned long long.
3878 Implicit conversion: double to long long.
3879 Implicit conversion: double to unsigned long long.
3880 Implicit conversion: long double to long long.
3881 Implicit conversion: long double to unsigned long long.
3900 char value returned from signed char %s().
3901 char value returned from unsigned char %s().
3902 char value returned from short %s().
3903 char value returned from unsigned short %s().
3904 char value returned from int %s().
3905 char value returned from unsigned int %s().
3906 char value returned from long %s().
3907 char value returned from unsigned long %s().
3908 char value returned from float %s().
3909 char value returned from double %s().
3910 char value returned from long double %s().
3911 unsigned char value returned from char %s().
3912 unsigned char value returned from signed char %s().
3913 unsigned char value returned from short %s().
3915 unsigned char value returned from int %s().
3917 unsigned char value returned from long %s().
3919 unsigned char value returned from float %s().
3920 unsigned char value returned from double %s().
3921 unsigned char value returned from long double %s().
3922 signed char value returned from char %s().
3923 signed char value returned from unsigned char %s().
3925 signed char value returned from unsigned short %s().
3927 signed char value returned from unsigned int %s().
3929 signed char value returned from unsigned long %s().
3930 signed char value returned from float %s().
3931 signed char value returned from double %s().
3932 signed char value returned from long double %s().
3933 short value returned from char %s().
3934 short value returned from signed char %s().
3935 short value returned from unsigned char %s().
3936 short value returned from unsigned short %s().
3938 short value returned from unsigned int %s().
3940 short value returned from unsigned long %s().
3941 short value returned from float %s().
3942 short value returned from double %s().
3943 short value returned from long double %s().
3944 unsigned short value returned from char %s().
3945 unsigned short value returned from signed char %s().
3946 unsigned short value returned from unsigned char %s().
3947 unsigned short value returned from short %s().
3948 unsigned short value returned from int %s().
3950 unsigned short value returned from long %s().
3952 unsigned short value returned from float %s().
3953 unsigned short value returned from double %s().
3954 unsigned short value returned from long double %s().
3955 int value returned from char %s().
3956 int value returned from signed char %s().
3957 int value returned from unsigned char %s().
3958 int value returned from short %s().
3959 int value returned from unsigned short %s().
3960 int value returned from unsigned int %s().
3962 int value returned from unsigned long %s().
3963 int value returned from float %s().
3964 int value returned from double %s().
3965 int value returned from long double %s().
3966 unsigned int value returned from char %s().
3967 unsigned int value returned from signed char %s().
3968 unsigned int value returned from unsigned char %s().
3969 unsigned int value returned from short %s().
3970 unsigned int value returned from unsigned short %s().
3971 unsigned int value returned from int %s().
3972 unsigned int value returned from long %s().
3974 unsigned int value returned from float %s().
3975 unsigned int value returned from double %s().
3976 unsigned int value returned from long double %s().
3977 long value returned from char %s().
3978 long value returned from signed char %s().
3979 long value returned from unsigned char %s().
3980 long value returned from short %s().
3981 long value returned from unsigned short %s().
3982 long value returned from int %s().
3983 long value returned from unsigned int %s().
3984 long value returned from unsigned long %s().
3985 long value returned from float %s().
3986 long value returned from double %s().
3987 long value returned from long double %s().
3988 unsigned long value returned from char %s().
3989 unsigned long value returned from signed char %s().
3990 unsigned long value returned from unsigned char %s().
3991 unsigned long value returned from short %s().
3992 unsigned long value returned from unsigned short %s().
3993 unsigned long value returned from int %s().
3994 unsigned long value returned from unsigned int %s().
3995 unsigned long value returned from long %s().
3996 unsigned long value returned from float %s().
3997 unsigned long value returned from double %s().
3998 unsigned long value returned from long double %s().
3999 float value returned from char %s().
4000 float value returned from signed char %s().
4001 float value returned from unsigned char %s().
4002 float value returned from short %s().
4003 float value returned from unsigned short %s().
4004 float value returned from int %s().
4005 float value returned from unsigned int %s().
4006 float value returned from long %s().
4007 float value returned from unsigned long %s().
4010 double value returned from char %s().
4011 double value returned from signed char %s().
4012 double value returned from unsigned char %s().
4013 double value returned from short %s().
4014 double value returned from unsigned short %s().
4015 double value returned from int %s().
4016 double value returned from unsigned int %s().
4017 double value returned from long %s().
4018 double value returned from unsigned long %s().
4019 double value returned from float %s().
4021 long double value returned from char %s().
4022 long double value returned from signed char %s().
4023 long double value returned from unsigned char %s().
4024 long double value returned from short %s().
4025 long double value returned from unsigned short %s().
4026 long double value returned from int %s().
4027 long double value returned from unsigned int %s().
4028 long double value returned from long %s().
4029 long double value returned from unsigned long %s().
4030 long double value returned from float %s().
4031 long double value returned from double %s().
4032 char value returned from long long %s().
4033 char value returned from unsigned long long %s().
4034 unsigned char value returned from long long %s().
4037 signed char value returned from unsigned long long %s().
4039 short value returned from unsigned long long %s().
4040 unsigned short value returned from long long %s().
4043 int value returned from unsigned long long %s().
4044 unsigned int value returned from long long %s().
4047 long value returned from unsigned long long %s().
4048 unsigned long value returned from long long %s().
4050 long long value returned from char %s().
4051 long long value returned from signed char %s().
4052 long long value returned from unsigned char %s().
4053 long long value returned from short %s().
4054 long long value returned from unsigned short %s().
4055 long long value returned from int %s().
4056 long long value returned from unsigned int %s().
4057 long long value returned from long %s().
4058 long long value returned from unsigned long %s().
4059 long long value returned from unsigned long long %s().
4060 long long value returned from float %s().
4061 long long value returned from double %s().
4062 long long value returned from long double %s().
4063 unsigned long long value returned from char %s().
4064 unsigned long long value returned from signed char %s().
4065 unsigned long long value returned from unsigned char %s().
4066 unsigned long long value returned from short %s().
4067 unsigned long long value returned from unsigned short %s().
4068 unsigned long long value returned from int %s().
4069 unsigned long long value returned from unsigned int %s().
4070 unsigned long long value returned from long %s().
4071 unsigned long long value returned from unsigned long %s().
4072 unsigned long long value returned from long long %s().
4073 unsigned long long value returned from float %s().
4074 unsigned long long value returned from double %s().
4075 unsigned long long value returned from long double %s().
4076 float value returned from long long %s().
4077 float value returned from unsigned long long %s().
4078 double value returned from long long %s().
4079 double value returned from unsigned long long %s().
4080 long double value returned from long long %s().
4081 long double value returned from unsigned long long %s().

Arithmetic type - Complex expressions

MessageMessage Text
4120 Implicit conversion: complex expression of integral type to wider type.
4121 Cast of complex expression of integral type to wider type.
4123 Implicit conversion: complex expression of type float to type double.
4124 Implicit conversion: complex expression of type float to type long double.
4125 Implicit conversion: complex expression of type double to type long double.
4126 Cast of complex expression of type float to type double.
4127 Cast of complex expression of type float to type long double.
4128 Cast of complex expression of type double to type long double.

Arithmetic type - Enum types

MessageMessage Text
1400 Enum object is being compared with an enum constant of a different enum type using an equality operator.
1401 An enum constant is being passed as argument to a function parameter of a different enum type.
1402 An enum constant is being assigned to an object of a different enum type.
1403 An enum constant is being returned from a function with a different enum return type.
1404 Enum object is being compared with an enum constant of a different enum type using a relational operator.
1410 Enum object is being compared with a constant, non-enum expression using an equality operator.
1411 A constant expression of non-enum type is being passed as argument to a function parameter of enum type.
1412 A constant expression of non-enum type is being assigned to an object of enum type.
1413 A constant expression of non-enum type is being returned from a function with an enum return type.
1414 Enum object is being compared with a constant, non-enum expression using a relational operator.
1420 Enum object is being compared with an object of a different enum type using an equality operator.
1421 An enum object is being passed as argument to a function parameter of a different enum type.
1422 An enum object is being assigned to an object of a different enum type.
1423 An enum object is being returned from a function with a different enum return type.
1424 Enum object is being compared with an object of a different enum type using a relational operator.
1431 An enum object is being passed as argument to a function parameter of non-enum type.
1432 An enum object is being assigned to an object of non-enum type.
1433 An enum object is being returned from a function with a non-enum return type.
1440 Enum object is being compared with a non-constant, non-enum expression using an equality operator.
1441 A non-constant expression of non-enum type is being passed as argument to a function parameter of enum type.
1442 A non-constant expression of non-enum type is being assigned to an object of enum type.
1443 A non-constant expression of non-enum type is being returned from a function with an enum return type.
1444 Enum object is being compared with a non-constant, non-enum expression using a relational operator.
1473 The 2nd and 3rd operands of this conditional operator (? :) are of different enum types.
1474 Object of enum type is being modified with a bitwise compound assignment operator.
1479 Object of enum type is being modified with an arithmetic compound assignment operator.
1480 Objects or constants of different enum types are operands of a bitwise operator.
1481 Object of enum type is being modified with an increment or decrement operator.
1482 Non-constant expression cast to enum type.
1484 Constant expression cast to enum type.

Arithmetic type - Operations

MessageMessage Text
0502 A right shift on signed data may be an arithmetic or a logical shift.
4130 Bitwise operations on signed data will give implementation defined results.
4131 Left shift operation on signed operand.

Miscellaneous

MessageMessage Text
1311 'void *' and 'const T *' pointers used as operands to an equality or conditional operator.
1313 Executing 'goto %s' will cause local initialization to be skipped.
2005 A 'continue' statement has been used.
2466 The value of this controlling expression is always 'false'. The contained code is unreachable.
3316 An unsigned value can never be less than zero - this test is always false.
3324 An unsigned value is always greater than or equal to zero - this test is always true.
3401 Possible precedence confusion: extra parentheses are recommended here.
3435 Parameter '%s' occurs more than once in the replacement list of this macro.

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents