@@ -13806,6 +13806,11 @@ tsubst_expr (tree t, tree args, tsubst_f
RECUR (TREE_OPERAND (t, 1)),
complain));
+ case ANNOTATE_EXPR:
+ tmp = RECUR (TREE_OPERAND (t, 0));
+ RETURN (build2_loc (EXPR_LOCATION (t), ANNOTATE_EXPR,
+ TREE_TYPE (tmp), tmp, RECUR (TREE_OPERAND (t, 1))));
+
default:
gcc_assert (!STATEMENT_CODE_P (TREE_CODE (t)));
@@ -0,0 +1,18 @@
+// PR c++/60267
+// { dg-do compile }
+// { dg-options "-O3" }
+
+template <int N>
+void
+foo (int *a, int *b, int *c)
+{
+#pragma GCC ivdep
+ for (int i = 0; i < N; i++)
+ a[i] = b[i] * c[i];
+}
+
+void
+bar (int *a, int *b, int *c)
+{
+ foo <64> (a, b, c);
+}