This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Change to g++ on June 1 breaks many things.
- To: mark at markmitchell dot com, jason at cygnus dot com
- Subject: Change to g++ on June 1 breaks many things.
- From: hjl at lucon dot org (H.J. Lu)
- Date: Mon, 1 Jun 1998 08:29:39 -0700 (PDT)
- Cc: egcs at cygnus dot com
Hi, Jason,
Your changes to cp on June 1 seems to fix my template bug. But it
creates a few new bugs. The first one is in libio:
/home/work/gnu/src/egcs/libio/pfstream.cc:57: sorry, not implemented: testing op_identifier for template parms
/home/work/gnu/src/egcs/libio/pfstream.cc: In method `ipfstream::ipfstream(const char *, int = ios::in, int = 436)':
/home/work/gnu/src/egcs/libio/pfstream.cc:57: confused by earlier errors, bailing out
Also I saw
c++ -g -O2 -B/home/work/gnu/bin/egcs-ppro/gcc/ -c test.cpp
test.cpp: In function `void ShareFile(int, int, const char *)':
test.cpp:236: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:236: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:236: warning: because conversion sequence for `this' argument is better
test.cpp:236: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:236: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:236: warning: because conversion sequence for `this' argument is better
test.cpp:239: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:239: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:239: warning: because conversion sequence for `this' argument is better
test.cpp:260: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:260: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:260: warning: because conversion sequence for `this' argument is better
test.cpp:262: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:262: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:262: warning: because conversion sequence for `this' argument is better
test.cpp:263: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:263: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:263: warning: because conversion sequence for `this' argument is better
test.cpp: In function `void AssembleFile(char *, char **, int)':
test.cpp:287: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:287: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:287: warning: because conversion sequence for `this' argument is better
test.cpp:289: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:289: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:289: warning: because conversion sequence for `this' argument is better
test.cpp:290: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
test.cpp:290: warning: for conversion from `SecByteBlock' to `const byte *'
test.cpp:290: warning: because conversion sequence for `this' argument is better
c++ -g -O2 -B/home/work/gnu/bin/egcs-ppro/gcc/ -c bench.cpp
xormac.h: In method `XMACC<T>::XMACC(const byte *, long unsigned int = 0ffffffff)':
In file included from bench.cpp:8:
xormac.h:38: warning: to refer to a type member of a template parameter,
xormac.h:38: warning: use `typename T::HashWordType'
algebra.h: In method `typename AbstractEuclideanDomain<T>::Element EuclideanDomainOf<T>::Zero() const':
In file included from modarith.h:9,
from blumshub.h:5,
from bench.cpp:27:
algebra.h:120: request for member `Element' is ambiguous in multiple inheritance lattice
algebra.h:120: parse error before `::'
algebra.h: In method `typename AbstractEuclideanDomain<T>::Element EuclideanDomainOf<T>::One() const':
algebra.h:141: request for member `Element' is ambiguous in multiple inheritance lattice
algebra.h:141: parse error before `::'
algebra.h: In method `void EuclideanDomainOf<T>::DivisionAlgorithm(typename AbstractEuclideanDomain<T>::Element &, typename AbstractEuclideanDomain<T>::Element &, typename AbstractEuclideanDomain<T>::Element &, typename AbstractEuclideanDomain<T>::Element &) const':
algebra.h:162: request for member `Element' is ambiguous in multiple inheritance lattice
algebra.h:162: parse error before `::'
bench.cpp: In function `float BenchMark(class HashModule &, float)':
bench.cpp:683: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:683: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:683: warning: because conversion sequence for `this' argument is better
bench.cpp: In function `float BenchMark(class BufferedTransformation &, float)':
bench.cpp:707: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:707: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:707: warning: because conversion sequence for `this' argument is better
bench.cpp: In function `float BenchMarkEncryption(class PK_Encryptor &, float)':
bench.cpp:730: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:730: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:730: warning: because conversion sequence for `this' argument is better
bench.cpp: In function `float BenchMarkDecryption(class PK_Decryptor &, class PK_Encryptor &, float)':
bench.cpp:744: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:744: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:744: warning: because conversion sequence for `this' argument is better
bench.cpp:750: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:750: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:750: warning: because conversion sequence for `this' argument is better
bench.cpp: In function `float BenchMarkSignature(class PK_Signer &, float)':
bench.cpp:768: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:768: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:768: warning: because conversion sequence for `this' argument is better
bench.cpp: In function `float BenchMarkVerification(class PK_Signer &, class PK_Verifier &, float)':
bench.cpp:781: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:781: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:781: warning: because conversion sequence for `this' argument is better
bench.cpp:787: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:787: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:787: warning: because conversion sequence for `this' argument is better
bench.cpp:787: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
bench.cpp:787: warning: for conversion from `SecByteBlock' to `const byte *'
bench.cpp:787: warning: because conversion sequence for `this' argument is better
hmac.h: In method `void HMAC<MD5>::Init<MD5>()':
hmac.h:40: instantiated from `HMAC<MD5>::HMAC<MD5>(const byte *, unsigned int)'
bench.cpp:92: instantiated from here
hmac.h:46: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
hmac.h:46: warning: for conversion from `SecByteBlock' to `const byte *'
hmac.h:46: warning: because conversion sequence for `this' argument is better
lubyrack.h: In method `void LREncryption<MD5>::ProcessBlock<MD5>(const byte *, byte *)':
lubyrack.h:32: instantiated from `LREncryption<MD5>::ProcessBlock<MD5>(byte *)'
hmac.h:46: instantiated from here
lubyrack.h:67: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
lubyrack.h:67: warning: for conversion from `SecByteBlock' to `const byte *'
lubyrack.h:67: warning: because conversion sequence for `this' argument is better
lubyrack.h:32: instantiated from `LREncryption<MD5>::ProcessBlock<MD5>(byte *)'
hmac.h:46: instantiated from here
lubyrack.h:77: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
lubyrack.h:77: warning: for conversion from `SecByteBlock' to `const byte *'
lubyrack.h:77: warning: because conversion sequence for `this' argument is better
lubyrack.h:32: instantiated from `LREncryption<MD5>::ProcessBlock<MD5>(byte *)'
hmac.h:46: instantiated from here
lubyrack.h:78: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
lubyrack.h:78: warning: for conversion from `SecByteBlock' to `const byte *'
lubyrack.h:78: warning: because conversion sequence for `this' argument is better
lubyrack.h:32: instantiated from `LREncryption<MD5>::ProcessBlock<MD5>(byte *)'
hmac.h:46: instantiated from here
lubyrack.h:85: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
lubyrack.h:85: warning: for conversion from `SecByteBlock' to `const byte *'
lubyrack.h:85: warning: because conversion sequence for `this' argument is better
mdc.h: In method `void MDC<MD5>::ProcessBlock<MD5>(byte *)':
hmac.h:46: instantiated from here
mdc.h:23: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
mdc.h:23: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
mdc.h:23: warning: because conversion sequence for `this' argument is better
mdc.h: In method `void MDC<MD5>::ProcessBlock<MD5>(const byte *, byte *)':
hmac.h:46: instantiated from here
mdc.h:30: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
mdc.h:30: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
mdc.h:30: warning: because conversion sequence for `this' argument is better
hmac.h: In method `void HMAC<MD5>::Final<MD5>(byte *)':
hmac.h:46: instantiated from here
hmac.h:60: warning: choosing `SecBlock<unsigned char>::operator byte *<byte>()' over `SecBlock<unsigned char>::operator const byte *<byte>() const'
hmac.h:60: warning: for conversion from `SecByteBlock' to `const byte *'
hmac.h:60: warning: because conversion sequence for `this' argument is better
xormac.h: In method `void XMACC<MD5>::HashBlock<MD5>(const word32 *)':
xormac.h:108: instantiated from `XMACC<MD5>::Verify<MD5>(const byte *)'
hmac.h:46: instantiated from here
xormac.h:70: warning: choosing `SecBlock<unsigned char>::operator void *<byte>()' over `SecBlock<unsigned char>::operator const void *<byte>() const'
xormac.h:70: warning: for conversion from `SecByteBlock' to `const void *'
xormac.h:70: warning: because conversion sequence for `this' argument is better
xormac.h:72: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:72: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:72: warning: because conversion sequence for `this' argument is better
xormac.h:74: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:74: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:74: warning: because conversion sequence for `this' argument is better
xormac.h:108: instantiated from `XMACC<MD5>::Verify<MD5>(const byte *)'
hmac.h:46: instantiated from here
xormac.h:75: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:75: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:75: warning: because conversion sequence for `this' argument is better
xormac.h: In method `bool XMACC<MD5>::Verify<MD5>(const byte *)':
hmac.h:46: instantiated from here
xormac.h:108: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:108: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:108: warning: because conversion sequence for `this' argument is better
xormac.h:110: warning: choosing `SecBlock<unsigned char>::operator void *<byte>()' over `SecBlock<unsigned char>::operator const void *<byte>() const'
xormac.h:110: warning: for conversion from `SecByteBlock' to `const void *'
xormac.h:110: warning: because conversion sequence for `this' argument is better
xormac.h:114: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:114: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:114: warning: because conversion sequence for `this' argument is better
xormac.h:115: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:115: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:115: warning: because conversion sequence for `this' argument is better
xormac.h:116: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:116: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:116: warning: because conversion sequence for `this' argument is better
xormac.h:117: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:117: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:117: warning: because conversion sequence for `this' argument is better
xormac.h:119: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:119: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:119: warning: because conversion sequence for `this' argument is better
xormac.h:120: warning: choosing `SecBlock<long unsigned int>::operator void *<word>()' over `SecBlock<long unsigned int>::operator const void *<word>() const'
xormac.h:120: warning: for conversion from `SecBlock<long unsigned int>' to `const void *'
xormac.h:120: warning: because conversion sequence for `this' argument is better
xormac.h: In method `void XMACC<MD5>::Final<MD5>(byte *)':
hmac.h:46: instantiated from here
xormac.h:85: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:85: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:85: warning: because conversion sequence for `this' argument is better
xormac.h:87: warning: choosing `SecBlock<unsigned char>::operator void *<byte>()' over `SecBlock<unsigned char>::operator const void *<byte>() const'
xormac.h:87: warning: for conversion from `SecByteBlock' to `const void *'
xormac.h:87: warning: because conversion sequence for `this' argument is better
xormac.h:91: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:91: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:91: warning: because conversion sequence for `this' argument is better
xormac.h:92: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:92: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:92: warning: because conversion sequence for `this' argument is better
xormac.h:93: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:93: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:93: warning: because conversion sequence for `this' argument is better
xormac.h:94: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:94: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:94: warning: because conversion sequence for `this' argument is better
xormac.h:97: warning: choosing `SecBlock<long unsigned int>::operator word *<word>()' over `SecBlock<long unsigned int>::operator const word *<word>() const'
xormac.h:97: warning: for conversion from `SecBlock<long unsigned int>' to `const word32 *'
xormac.h:97: warning: because conversion sequence for `this' argument is better
xormac.h:98: warning: choosing `SecBlock<long unsigned int>::operator void *<word>()' over `SecBlock<long unsigned int>::operator const void *<word>() const'
xormac.h:98: warning: for conversion from `SecBlock<long unsigned int>' to `const void *'
xormac.h:98: warning: because conversion sequence for `this' argument is better
make: *** [bench.o] Error 1
I am not sure if 2 are related or not. I can make a small test case
for second one.
Thanks.
H.J.