Warnings with gcc 3.3

Leopold Palomo Avellaneda <[email protected]> Wed, 14 Jan 2004 12:40:47 +0100
Newsgroups gmane.comp.lib.mtl.devel
Message-ID <[email protected]>
Hi,

I have tried to compile itl-4.0.0-1 in a Debian Sarge with g++-3.3. I have 
found some problems. First of the package not compile, but with the patch:
http://www.osl.iu.edu/MailArchives/mtl-devel/msg00493.php
compile with some warnings:
....
g++ -DHAVE_CONFIG_H   -I. -I/usr/include -I..   -ftemplate-depth-30 -Wall   -g   
-c ilut_cgs.cpp
In file included from ilut_cgs.cpp:70:
../itl/preconditioner/ilut.h: In member function `void
   itl::ILUT<Matrix>::do_ilut(const Matrix&, mtl::row_tag)':
../itl/preconditioner/ilut.h:185: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:185: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:186: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:186: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:215: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:215: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:216: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:216: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:265: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:265: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:278: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:278: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:285: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:285: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:301: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:301: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:309: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:309: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h: In member function `void
   itl::ILUT<Matrix>::do_ilut(Matrix, mtl::column_tag)':
../itl/preconditioner/ilut.h:371: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:371: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:372: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:372: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:401: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:401: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:402: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:402: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:451: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:451: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:464: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:464: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:471: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:471: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:487: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:487: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:495: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:495: warning: implicit typename is deprecated,
   please see the documentation for details
g++  -ftemplate-depth-30 -Wall   -g    -o ilut_cgs  ilut_cgs.o iohb.o -lm
g++ -DHAVE_CONFIG_H   -I. -I/usr/include -I..   -ftemplate-depth-30 -Wall   -g   
-c ilut_gcr.cpp
In file included from ilut_gcr.cpp:70:
../itl/preconditioner/ilut.h: In member function `void
   itl::ILUT<Matrix>::do_ilut(const Matrix&, mtl::row_tag)':
../itl/preconditioner/ilut.h:185: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:185: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:186: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:186: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:215: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:215: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:216: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:216: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:265: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:265: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:278: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:278: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:285: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:285: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:301: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:301: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:309: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:309: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h: In member function `void
   itl::ILUT<Matrix>::do_ilut(Matrix, mtl::column_tag)':
../itl/preconditioner/ilut.h:371: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:371: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:372: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:372: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:401: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:401: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:402: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:402: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:451: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:451: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:464: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:464: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:471: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:471: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:487: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:487: warning: implicit typename is deprecated,
   please see the documentation for details
../itl/preconditioner/ilut.h:495: warning: `std::vector<mtl::entry1<typename
   Matrix::value_type>, std::allocator<mtl::entry1<typename 
Matrix::value_type>
   > >::iterator' is implicitly a typename
../itl/preconditioner/ilut.h:495: warning: implicit typename is deprecated,
   please see the documentation for details

I have found some information about that:
http://gcc.gnu.org/ml/gcc-bugs/2003-07/msg00317.html

and the resolved bug:
....
This is not a bug, but warns you correctly of invalid code: if
you use identifiers such as "nested" in the derived class, then
they are implicitly typenames of the form 
  typename base<T>::nested
The point is that the standard prescribes that names from template
dependent base classes are not visible during lookup, so your
code is invalid and will not even compile with gcc3.4. You
really need to write
  typename base<T>::nested
instead.

Also, I havefound that ITL examples (Laplacian in concrete) doesn't compile 
with g++-3.3 because of a compiler error:

make[1]: Entering directory `/home/lepalom/tmp/itl-4.0.0-1/examples'
Making all in laplacian
make[2]: Entering directory `/home/lepalom/tmp/itl-4.0.0-1/examples/laplacian'
g++ -DHAVE_CONFIG_H   -I/usr/include -I../..   -ftemplate-depth-30 -Wall   -g   
-c bicgstab.cpp
laplacian.h: In function `void generate_laplacian_2D(Matrix&, int, int) [with
   Matrix = Matrix]':
bicgstab.cpp:116:   instantiated from here
laplacian.h:71: internal compiler error: Violació de segment
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [bicgstab.o] Error 1
make[2]: Leaving directory `/home/lepalom/tmp/itl-4.0.0-1/examples/laplacian'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lepalom/tmp/itl-4.0.0-1/examples'
make: *** [all-recursive] Error 1

I have open the bug. Maybe it could help.


Best regards,

Leo


_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/