StanfordLegion/legion

Legion: warning `‘it.Legion::Domain::DomainPointIterator::is_valid’ may be used uninitialized`

mariodirenzo opened this issue · 5 comments

Newer versions of the runtime return with multiple compilers the following warning

In member function ‘Legion::Domain::DomainPointIterator::operator bool() const’,
    inlined from ‘virtual void HTR::Prometeo::PrometeoMapper::Mapper::slice_task(Legion::Mapping::MapperContext, const HTR::Task&, const Legion::Mapping::Mapper::SliceTaskInput&, Legion::Mapping::Mapper::SliceTaskOutput&)’ at /g/g92/direnzo1/htr_tioga/src/prometeo/mapper.cc:616:55:
/g/g92/direnzo1/legion_tioga/runtime/legion/legion_domain.inl:1288:12: warning: ‘it.Legion::Domain::DomainPointIterator::is_valid’ may be used uninitialized [-Wmaybe-uninitialized]
 1288 |     return is_valid && rect_valid;
      |            ^~~~~~~~
/g/g92/direnzo1/htr_tioga/src/prometeo/mapper.cc: In member function ‘virtual void HTR::Prometeo::PrometeoMapper::Mapper::slice_task(Legion::Mapping::MapperContext, const HTR::Task&, const Legion::Mapping::Mapper::SliceTaskInput&, Legion::Mapping::Mapper::SliceTaskOutput&)’:
/g/g92/direnzo1/htr_tioga/src/prometeo/mapper.cc:616:37: note: ‘it’ declared here
  616 |    for (Domain::DomainPointIterator it(input.domain); it; it++) {
      |                                     ^~

I think that it is due to a missing default initialization of is_valid in the function https://gitlab.com/StanfordLegion/legion/-/blob/master/runtime/legion/legion_domain.inl?ref_type=heads#L1197

@elliottslaughter, can you add this issue to #1032 ?

You mentioned "multiple compilers", but what compilers are these exactly?

gcc/11.3.0, gcc/12.2.0, and clang/16.0.6

That fixes the issue

Merged