------- Comment #6 from rguenth at gcc dot gnu dot org 2009-09-30 11:51 ------- More reduced:
a.c: extern "C" double sqrt (double __x) throw (); typedef double VECTOR[3]; enum { X = 0, Y = 1, Z = 2, T = 3 }; inline void VLength(double& a, const VECTOR b) { a = sqrt(b[X] * b[X] + b[Y] * b[Y] + b[Z] * b[Z]); } void determine_subpatch_flatness(void) { double temp1; VECTOR TempV; VLength(temp1, TempV); VLength(temp1, TempV); } b.c: extern "C" double sqrt (double __x) throw (); typedef double VECTOR[3]; enum { X = 0, Y = 1, Z = 2, T = 3 }; inline void VLength(double& a, const VECTOR b) { a = sqrt(b[X] * b[X] + b[Y] * b[Y] + b[Z] * b[Z]); } int All_Torus_Intersections(void) { double len; VECTOR D; VLength(len, D); VLength(len, D); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41487