Closed nenadv closed 10 years ago
The failure within a nested forall could be related to making the state which records the nesting into TLD (or failing to do so). Without looking at code I am guessing the accesses to the control variable in the transformed forall are not using the TLD access macros.
FYI: I am also retesting this pthreads support today.
Without looking at code I am guessing the accesses to the control variable in the transformed forall are not using the TLD access macros.
That guess has been confirmed:
$ grep upcrt_forall_control test10.trans.c
int32_t UPCR_TLD_DEFINE_TENTATIVE(upcrt_forall_control, 4, 4);
if (upcrt_forall_control) {
upcrt_forall_control = 1;
upcrt_forall_control = 0;
There appear to be many tests in the full suite that fail due to the lack of TLD macros when accessing upcrt_forall_control
. That omission leads both to nested forall's which don't know they are nested and non-nested foralls which erroneously execute as if they are nested.
Use of upc_forall
is sufficiently pervasive in the test suite that I cannot (yet) definitively determine if any of the numerous runtime failures seen in a full harness run are not due to this particular bug.
I have a possible fix in testing now.
With the fix mentioned in my previous comment, the number of "NEW" runtime failures drops from 78 to just 20.
Fixed in e5008aa
After Steven's commits for TLD fixes of #100, ... I get only one failure on intrepid test suite:
I am running the full test suite now.