From e98cb4cc28b93a0b64198272def597635ef1915d Mon Sep 17 00:00:00 2001
From: Marcel Koch <marcel.koch@uni-muenster.de>
Date: Thu, 19 Apr 2018 10:32:04 +0200
Subject: [PATCH] raise error if `next` is not successful

---
 python/dune/perftool/blockstructured/vectorization.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/python/dune/perftool/blockstructured/vectorization.py b/python/dune/perftool/blockstructured/vectorization.py
index 32debee0..ee76a4b8 100644
--- a/python/dune/perftool/blockstructured/vectorization.py
+++ b/python/dune/perftool/blockstructured/vectorization.py
@@ -252,9 +252,13 @@ def add_vcl_access(knl, iname_inner):
         else:
             if insn.id in accum_insns:
                 assignee_alias = insn.assignee
-                assignee_vec = next((expr for expr in insn.expression.children
-                                     if isinstance(expr, prim.Subscript) and
-                                     expr.aggregate.name.replace('vec', 'alias') == assignee_alias.aggregate.name))
+                try:
+                    assignee_vec = next((expr for expr in insn.expression.children
+                                         if isinstance(expr, prim.Subscript) and
+                                         expr.aggregate.name.replace('vec', 'alias') == assignee_alias.aggregate.name))
+                except StopIteration:
+                    from dune.perftool.error import PerftoolVectorizationError
+                    raise PerftoolVectorizationError
                 new_insns.append(insn.copy(assignee=assignee_vec,
                                            depends_on=insn.depends_on | read_dependencies[insn.id]))
             else:
-- 
GitLab