re PR middle-end/85874 (gcc points to wrong location when displaying warning for strict overflow warning)
2018-05-23 Richard Biener <rguenther@suse.de> PR middle-end/85874 * tree-data-ref.c (create_runtime_alias_checks): Defer and ignore overflow warnings. * gcc.dg/Wstrict-overflow-27.c: New testcase. From-SVN: r260569
This commit is contained in:
parent
ad4f3f5d4e
commit
72cfbeae2b
@ -1,3 +1,9 @@
|
||||
2018-05-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/85874
|
||||
* tree-data-ref.c (create_runtime_alias_checks): Defer
|
||||
and ignore overflow warnings.
|
||||
|
||||
2018-05-23 Yury Gribov <tetra2005@gmail.com>
|
||||
|
||||
PR tree-optimization/85822
|
||||
|
@ -1,3 +1,8 @@
|
||||
2018-05-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR middle-end/85874
|
||||
* gcc.dg/Wstrict-overflow-27.c: New testcase.
|
||||
|
||||
2018-05-23 Yury Gribov <tetra2005@gmail.com>
|
||||
|
||||
PR tree-optimization/85822
|
||||
|
28
gcc/testsuite/gcc.dg/Wstrict-overflow-27.c
Normal file
28
gcc/testsuite/gcc.dg/Wstrict-overflow-27.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -Wstrict-overflow=2 -Werror" } */
|
||||
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
|
||||
char **__restrict __save_ptr)
|
||||
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
|
||||
extern const unsigned short int **__ctype_b_loc (void)
|
||||
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
|
||||
extern int *DEBUGLEVEL_CLASS;
|
||||
size_t debug_num_classes = 0;
|
||||
void debug_parse_param(char *param);
|
||||
void
|
||||
debug_parse_levels(const char *params_str, size_t str_len)
|
||||
{
|
||||
char str[str_len+1];
|
||||
char *tok, *saveptr;
|
||||
size_t i;
|
||||
tok = strtok_r(str, " \t,\n\r", &saveptr);
|
||||
if (((*__ctype_b_loc ())[(int) ((tok[0]))]))
|
||||
tok = strtok_r(((void *)0), " \t,\n\r", &saveptr);
|
||||
else
|
||||
DEBUGLEVEL_CLASS[0] = 0;
|
||||
for (i = 0 +1; i < debug_num_classes; i++)
|
||||
DEBUGLEVEL_CLASS[i] = DEBUGLEVEL_CLASS[0];
|
||||
while (tok != ((void *)0) )
|
||||
debug_parse_param(tok);
|
||||
}
|
@ -1918,6 +1918,7 @@ create_runtime_alias_checks (struct loop *loop,
|
||||
{
|
||||
tree part_cond_expr;
|
||||
|
||||
fold_defer_overflow_warnings ();
|
||||
for (size_t i = 0, s = alias_pairs->length (); i < s; ++i)
|
||||
{
|
||||
const dr_with_seg_len& dr_a = (*alias_pairs)[i].first;
|
||||
@ -1940,6 +1941,7 @@ create_runtime_alias_checks (struct loop *loop,
|
||||
else
|
||||
*cond_expr = part_cond_expr;
|
||||
}
|
||||
fold_undefer_and_ignore_overflow_warnings ();
|
||||
}
|
||||
|
||||
/* Check if OFFSET1 and OFFSET2 (DR_OFFSETs of some data-refs) are identical
|
||||
|
Loading…
Reference in New Issue
Block a user