On Wed, Jul 01, 2015 at 12:55:38 +0200, Jakub Jelinek wrote: > * cgraph.h (enum cgraph_simd_clone_arg_type): Add > SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP, > SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP, > and SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP. > (struct cgraph_simd_clone_arg): Adjust comment. > * omp-low.c (simd_clone_clauses_extract): Honor > OMP_CLAUSE_LINEAR_KIND. > (simd_clone_mangle): Mangle the various linear kinds > per the new ABI. > (simd_clone_adjust_argument_types): Handle > SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP. > (simd_clone_init_simd_arrays): Don't do anything > for uval. > (simd_clone_adjust): Handle > SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like > SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. > Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP. > c/ > * c-tree.h (c_finish_omp_clauses): Add declare_simd argument. > * c-parser.c (c_parser_omp_clause_linear): Don't handle uval > modifier in C. > (c_parser_omp_all_clauses): If mask includes uniform clause, > pass true to c_finish_omp_clauses' declare_simd. > * c-typeck.c (c_finish_omp_clauses): Add declare_simd argument, > don't set need_implicitly_determined if it is true. > cp/ > * cp-tree.h (finish_omp_clauses): Add declare_simd argument. > * parser.c (cp_parser_omp_all_clauses): If mask includes uniform > clause, pass true to finish_omp_clauses' declare_simd. > * pt.c (apply_late_template_attributes): Pass true to > finish_omp_clauses' declare_simd. > * semantics.c (finish_omp_clauses): Add declare_simd argument, > don't set need_implicitly_determined if it is true. > testsuite/ > * gcc.dg/gomp/clause-1.c (foo): Add some linear clause tests. > * g++.dg/gomp/clause-3.C (foo): Likewise. > * g++.dg/gomp/declare-simd-3.C: New test.
This caused: gcc/tree-vect-stmts.c: In function ‘bool vectorizable_simd_clone_call(gimple, gimple_stmt_iterator*, gimple_statement_base**, slp_tree)’: gcc/tree-vect-stmts.c:2810:13: error: enumeration value ‘SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP’ not handled in switch [-Werror=switch] switch (n->simdclone->args[i].arg_type) ^ gcc/tree-vect-stmts.c:2810:13: error: enumeration value ‘SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP’ not handled in switch [-Werror=switch] gcc/tree-vect-stmts.c:2810:13: error: enumeration value ‘SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP’ not handled in switch [-Werror=switch] cc1plus: all warnings being treated as errors make[4]: *** [tree-vect-stmts.o] Error 1 -- Ilya