[Prev][Next][Index]

pC++ error



Hello.

Every few months, I encounter the following pC++ error: for a
method of element foo() and method of collection bar(), the
pC++ compileres "forgets" to expand the function call

	this->foo()

in bar() into an appropriate loop. (E.g., in uniproc mode the
code above is supposed to be expanded into something like
this in temp.C:

	for(pcxx_0 =0; ...; ... ++) {
		(* this)(pcxx_0) -> foo();
        }

, but sometimes the expansion is not done.)

When this happens, the C++ compiler notices the error when it
compiles temp.C. 

Usually I "sweep this problem under the carpet", i.e. make it
it go away by reordering my pC++ functions. (For some reason,
this usually succeeds). But now I am annoyed enough to finally
report the problem. The shortest example I could make is in
the directory ~vmenkov/exptest on caledonia. To see the
problem, run
	build uniproc

and see how the pC++ preprocessor fails to expand the function arVez
(a MoE called from rankOneLusolt, a MoC). It is interesting
that the problem goes away if one comments out the previous
function, rankOneFactorABlock in main.pc.

Thanks for your attention.

	--Vladimir