← Back to team overview

ffc team mailing list archive

Re: Tests failing

 

On 10/14/2011 01:35 PM, Anders Logg wrote:
On Fri, Oct 14, 2011 at 01:30:27PM +0200, Marie E. Rognes wrote:
On 10/14/2011 11:37 AM, Kristian Ølgaard wrote:
On 14 October 2011 10:51, Anders Logg<logg@xxxxxxxxx>   wrote:
The FFC tests are failing on my laptop. I might have screwed something
up locally but it might also be related to updating to Ubuntu 11.10
last night which has GCC 4.6.1-9ubuntu3.

Here's the error I get:

Verifying element 2 of 143:<CG2 on a<interval cell in R1>>
GCC compilation failed.


element:<CG2 on a<interval cell in R1>>,
In file included from evaluate_basis.cpp:4:0:
test.h: In member function 'virtual void
test_finite_element_0::evaluate_basis(unsigned int, double*, const
double*, const ufc::cell&) const':
test.h:128:14: error: variable 'tmp0' set but not used
[-Werror=unused-but-set-variable]
test.h:165:14: error: variable 'tmp0' set but not used
[-Werror=unused-but-set-variable]
test.h:202:14: error: variable 'tmp0' set but not used
[-Werror=unused-but-set-variable]

Anyone else seeing this?
Yes, I also get this with the same version of GCC. The problem is code like:

       double tmp0 = 0.0;
       double tmp1 = 0.0;
       double tmp2 = 0.0;
       for (unsigned int r = 2; r<   5; r++)
       {
         tmp0 = 2.0*r*r*(2.0*r-2.0);
         tmp1 = 2.0*r*(2.0*r-1.0)*(2.0*r-2.0)/(2.0*r*r*(2.0*r-2.0));
         tmp2 = 4.0*r*(r-1.0)*(r-1.0)/(2.0*r*r*(2.0*r-2.0));
         basisvalues[r] = (X*basisvalues[r - 1]*tmp1 - basisvalues[r - 2]*tmp2);
       }// end loop over 'r'

As you see, tmp0 is not used to compute the entry in basisvalues[].
However, a value is being assigned to it in

tmp0 = 2.0*r*r*(2.0*r-2.0);

maybe this is why it is not being removed by the remove_unused()
function in cpp.py?
Sounds like an argument for unrolling the loops for 1D (as for 2D
and 3D) as well. Can fix.
Thanks! The other option would be to dig into remove_unused and it's
not a place I want to go.


Done.

--
Marie


References