summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'elaborate.cxx')
-rw-r--r--elaborate.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/elaborate.cxx b/elaborate.cxx
index 0f308c68..cac773bf 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -352,9 +352,12 @@ symresolution_info::find_array (const string& name, unsigned arity)
{
stapfile* f = session.library_files[i];
for (unsigned j=0; j<f->globals.size(); j++)
- if (f->globals[j]->name == name &&
- f->globals[j]->index_types.size() == arity)
+ if (f->globals[j]->name == name)
+ if ((f->globals[j]->arity == (int) arity) ||
+ f->globals[j]->arity < 0)
{
+ f->globals[j]->set_arity (arity);
+
// put library into the queue if not already there
if (0) // (session.verbose_resolution)
cerr << " array " << name << " "