diff options
-rw-r--r-- | gcc/c/c-parser.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr113267.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc index e7b74fb..878f323 100644 --- a/gcc/c/c-parser.cc +++ b/gcc/c/c-parser.cc @@ -8445,7 +8445,7 @@ c_parser_for_statement (c_parser *parser, bool ivdep, unsigned short unroll, build_int_cst (integer_type_node, annot_expr_unroll_kind), build_int_cst (integer_type_node, unroll)); - if (novector && cond != error_mark_node) + if (novector && cond && cond != error_mark_node) cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond, build_int_cst (integer_type_node, annot_expr_no_vector_kind), diff --git a/gcc/testsuite/gcc.dg/pr113267.c b/gcc/testsuite/gcc.dg/pr113267.c new file mode 100644 index 0000000..8b6fa08 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr113267.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ + +void f (char *a, int i) +{ +#pragma GCC novector + for (;;i++) + a[i] *= 2; +} |