From: Richard Stallman Date: Sun, 17 May 1992 22:13:51 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=26b3c423d5a1bbefbdd659dce21a84a260bae459;p=gcc.git *** empty log message *** From-SVN: r1005 --- diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 2de86ae32eb..751a2587c00 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -782,6 +782,17 @@ c_alignof (type) return size_int (TYPE_ALIGN (type) / BITS_PER_UNIT); } + +/* Print a warning if a constant expression had overflow in folding. + This doesn't really work--it is waiting for changes in fold. */ + +void +constant_expression_warning (value) + tree value; +{ + if (TREE_CODE (value) == NON_LVALUE_EXPR && TREE_CONSTANT_OVERFLOW (value)) + pedwarn ("overflow in constant expression"); +} /* Implement the __alignof keyword: Return the minimum required alignment of EXPR, measured in bytes. For VAR_DECL's and @@ -3013,7 +3024,7 @@ build_unary_op (code, xarg, noconvert) return error_mark_node; /* Report a read-only lvalue. */ - if (TYPE_READONLY (TREE_TYPE (arg))) + if (TREE_READONLY (arg)) readonly_warning (arg, ((code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR) @@ -4203,6 +4214,9 @@ store_init_value (decl, init) } #endif + /* ANSI wants warnings about out-of-range constant initializers. */ + constant_expression_warning (value); + DECL_INITIAL (decl) = value; }