diff options
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index 3768db5..b2bdf50 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -702,6 +702,7 @@ constant_expression_warning (value) tree value; { if ((TREE_CODE (value) == INTEGER_CST || TREE_CODE (value) == REAL_CST + || TREE_CODE (value) == VECTOR_CST || TREE_CODE (value) == COMPLEX_CST) && TREE_CONSTANT_OVERFLOW (value) && pedantic) pedwarn ("overflow in constant expression"); @@ -736,6 +737,12 @@ overflow_warning (value) if (skip_evaluation == 0) warning ("floating point overflow in expression"); } + else if (TREE_CODE (value) == VECTOR_CST && TREE_OVERFLOW (value)) + { + TREE_OVERFLOW (value) = 0; + if (skip_evaluation == 0) + warning ("vector overflow in expression"); + } } /* Print a warning if a large constant is truncated to unsigned, |