Description of problem: Compiler error in gcc Version-Release number of selected component (if applicable): gcc 3.4 How reproducible: Attached a source code fragment (otherwise OpenSG required). Full example available upon request. Steps to Reproduce: 1. 2. 3. Actual results: Compiling fails. Expected results: Compiling succeeds. Additional info:
Created attachment 110747 [details] Preprocessed source
Created attachment 110748 [details] Preprocessed source
Created attachment 110749 [details] Source code Attached the source file. The lines above the error causing code (ln. 66 and ln. 72) are accepted by the compiler. Regards, Christian Lessig Fraunhofer IGD / Bauhaus-Universität Weimar
Simplified testcase: extern double foo (double); template <class T> struct A { T y () const; }; typedef A <float> B; template <unsigned int T> struct C { C (); B c; float r; }; template <unsigned int T> C<T>::C () { r = foo (c.y); } G++ 3.4 ICEs on this, G++ 3.2 accepts it, G++ CVS HEAD rejects it with: 147385.ii: In constructor <T>::C()': 147385.ii:22: error: not enough type information
Given that this is ICE on invalid as far as I can judge (you want cartesian.y () instead of cartesian.y and similarly for x and z), I'm moving this upstream.