gcc 4.7.0 fixes a bug that Crypto++ 5.6.1 relies on
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Crypto++ |
Fix Released
|
Unknown
|
|||
gcc |
Fix Released
|
Medium
|
|||
pycryptopp |
Fix Released
|
Unknown
|
|||
Fedora |
Invalid
|
Undecided
|
Unassigned | ||
libcrypto++ (Fedora) |
Invalid
|
Undecided
|
|||
libcrypto++ (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
gcc 4.7.0 fixes a bug (http://
(This doesn't *actually* affect Ubuntu yet as Ubuntu isn't using gcc 4.7 yet, but opening a ticket against Ubuntu's packaging of Crypto++ is the only way I could figure out how to make a ticket on launchpad so that I could link those other tickets. lifeless on IRC suggested this.)
no longer affects: | cryptopp |
Changed in gcc: | |
importance: | Unknown → Medium |
status: | Unknown → Fix Released |
Changed in cryptopp: | |
status: | Unknown → New |
Changed in pycryptopp: | |
status: | Unknown → Fix Released |
Changed in libcrypto++ (Ubuntu): | |
status: | New → Invalid |
affects: | gcc-4.7 (Fedora) → fedora |
Changed in fedora: | |
importance: | Unknown → Undecided |
status: | Unknown → New |
status: | New → Invalid |
importance: | Undecided → Unknown |
status: | Invalid → Unknown |
importance: | Unknown → Undecided |
status: | Unknown → New |
status: | New → Invalid |
Changed in cryptopp: | |
status: | New → Fix Released |
Changed in libcrypto++ (Fedora): | |
importance: | Unknown → Undecided |
status: | Unknown → Invalid |
(I first posted this code to PR5660 but it's apparently a separate issue)
template <typename T>
struct A
{
typedef T Type;
void f(Type) {}
};
template <typename T>
struct B : A<T>
{
typedef typename A<T>::Type Type;
void ff(Type t) { f(t); } // XXX
};
template struct B<int>;
This should fail to compile, according to 14.6.2/3, but 3.4 - 4.1 (and probably
earlier) accept it.
If A::f and the call to it are changed to take no arguments (so that f is not a
dependent name) then it fails, so it is apparently only at instantiation that
the base class scope is examined.