which happens to work if you don't compile with -fopenmp because the omp pragma is ignored but the behavior still needs fixing.
The issue can be seen here:
void
PragmaActivateGuard::deletePragmaText(SSTPragma *prg)
{
//eliminate the pragma text
if (prg->depth == 0){
SourceRange rng(prg->pragmaDirectiveLoc, prg->endPragmaLoc);
::replace(rng, "");
}
}
Even though the second pragma might ask to be deleted, if it is isn't the first pragma it won't be deleted. The conflict with OpenMP pragmas can probably be worked around by avoiding activating the openmp compiler flag, but we should probably still fix this because their could be other issues with not properly deleting pragma text.
Follow function:
Skeletonizes too:
which happens to work if you don't compile with
-fopenmp
because the omp pragma is ignored but the behavior still needs fixing. The issue can be seen here:Even though the second pragma might ask to be deleted, if it is isn't the first pragma it won't be deleted. The conflict with OpenMP pragmas can probably be worked around by avoiding activating the openmp compiler flag, but we should probably still fix this because their could be other issues with not properly deleting pragma text.