https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100872
Bug ID: 100872 Summary: [OpenMP] internal compiler error: tree check: expected integer_cst, have mult_expr in simd_clone_clauses_extract, at omp-simd-clone.c:253 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, openmp Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Found when compiling clang's OpenMP testsuite for for * declare_simd_ast_print.cpp: https://github.com/llvm/llvm-project/blob/main/clang/test/OpenMP/declare_simd_ast_print.cpp * declare_simd_codegen.cpp: https://github.com/llvm/llvm-project/blob/main/clang/test/OpenMP/declare_simd_codegen.cpp template <int X, typename T> class TVV { public: #pragma omp declare simd aligned(a : X * 2) aligned(b) linear(ref(b): X) float taddpf(float *a, T *&b) { return *a + *b; } }; TVV<16, float> t16; void f() { float a = 1.0f, b = 2.0f; float *p = &b; float r = t16.taddpf(&a, p); } foo.C:14:1: internal compiler error: tree check: expected integer_cst, have mult_expr in simd_clone_clauses_extract, at omp-simd-clone.c:253 14 | } | ^ 0x8828a4 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../repos/gcc/gcc/tree.c:8684 0x97210e tree_int_cst_elt_check(tree_node*, int, char const*, int, char const*) ../../repos/gcc/gcc/tree.h:3571 0x97210e simd_clone_clauses_extract ../../repos/gcc/gcc/omp-simd-clone.c:253 0x97210e expand_simd_clones(cgraph_node*) ../../repos/gcc/gcc/omp-simd-clone.c:1695 0x1cf40a7 ipa_omp_simd_clone ../../repos/gcc/gcc/omp-simd-clone.c:1798