Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Commit d36f696

Browse files
committed
Fix handling NameSlice for array sections
1 parent 91631f4 commit d36f696

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

numba/openmp.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,11 @@ def add_arg(arg, the_set):
540540
the_set.add(self.arg.name)
541541
elif isinstance(self.arg, str):
542542
the_set.add(self.arg)
543+
elif isinstance(self.arg, NameSlice):
544+
assert isinstance(self.arg.name, str), "Expected str in NameSlice arg"
545+
the_set.add(self.arg.name)
546+
# TODO: Create a good error check mechanism.
547+
#else: ?
543548

544549
if self.name.startswith("DIR.OMP"):
545550
assert not isinstance(self.arg, (ir.Var, str))
@@ -1494,6 +1499,10 @@ def add_struct_tags(self, var_table):
14941499
struct_tags.append(openmp_tag(cur_tag.name + ".STRUCT", cur_tag_var + "*data", non_arg=True, omp_slice=(0, size_var)))
14951500
struct_tags.append(openmp_tag("QUAL.OMP.MAP.TO.STRUCT", cur_tag_var + "*shape", non_arg=True, omp_slice=(0, 1)))
14961501
struct_tags.append(openmp_tag("QUAL.OMP.MAP.TO.STRUCT", cur_tag_var + "*strides", non_arg=True, omp_slice=(0, 1)))
1502+
# Peel off NameSlice, it served its purpose and is not
1503+
# needed by the rest of compilation.
1504+
if isinstance(cur_tag.arg, NameSlice):
1505+
cur_tag.arg = cur_tag.arg.name
14971506

14981507
return struct_tags, extras_before
14991508

@@ -3125,6 +3134,9 @@ def get_explicit_vars(self, clauses):
31253134
for carg in carglist:
31263135
if config.DEBUG_OPENMP >= 1:
31273136
print("carg:", carg, type(carg), user_defined_var(carg), is_dsa(c.name))
3137+
# Extract the var name from the NameSlice.
3138+
if isinstance(carg, NameSlice):
3139+
carg = carg.name
31283140
#if isinstance(carg, str) and user_defined_var(carg) and is_dsa(c.name):
31293141
#if isinstance(carg, str) and user_defined_var(carg) and is_dsa(c.name):
31303142
if isinstance(carg, str) and is_dsa(c.name):

0 commit comments

Comments
 (0)