aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-07-11 22:44:54 +0000
committerRichard Stallman <rms@gnu.org>1993-07-11 22:44:54 +0000
commit4bbbc5d906d1363fa6ca5fdf587c579120756a71 (patch)
treeec703d915e9e42ca93dcf3d43dc6176b9ab519a9 /gcc
parentf0a5c7b7d334fb71876eb5819884ff6c01e83c49 (diff)
downloadgcc-4bbbc5d906d1363fa6ca5fdf587c579120756a71.zip
gcc-4bbbc5d906d1363fa6ca5fdf587c579120756a71.tar.gz
gcc-4bbbc5d906d1363fa6ca5fdf587c579120756a71.tar.bz2
(convert_arguments): Don't warn about sign change for an INTEGER_CST inside NOP_EXPR, if value not fits new type.
(convert_arguments): Don't warn about sign change for an INTEGER_CST inside NOP_EXPR, if value not fits new type. Delete the code to check for VAL having enumeration type. From-SVN: r4906
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-typeck.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 31aa96d..68c8946 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -2073,12 +2073,19 @@ convert_arguments (typelist, values, name, fundecl)
/* Change in signedness doesn't matter
if a constant value is unaffected. */
;
+ /* Likewise for a constant in a NOP_EXPR. */
+ else if (TREE_CODE (val) == NOP_EXPR
+ && TREE_CODE (TREE_OPERAND (val, 0)) == INTEGER_CST
+ && int_fits_type_p (TREE_OPERAND (val, 0), type))
+ ;
+#if 0 /* We never get such tree structure here. */
else if (TREE_CODE (TREE_TYPE (val)) == ENUMERAL_TYPE
&& int_fits_type_p (TYPE_MIN_VALUE (TREE_TYPE (val)), type)
&& int_fits_type_p (TYPE_MAX_VALUE (TREE_TYPE (val)), type))
/* Change in signedness doesn't matter
if an enum value is unaffected. */
;
+#endif
/* If the value is extended from a narrower
unsigned type, it doesn't matter whether we
pass it as signed or unsigned; the value