[cfe-dev] MS/Borland portability and 2-phase lookup
Eric Niebler
eric at boostpro.com
Fri Mar 4 00:08:58 PST 2011
We have a portability problem compiling old code for MS/Borland with
clang: 2-phase lookup. Those compilers don't do it, so they accept code
that clang rejects. For example:
template<class X>
struct S {
int i;
};
template<class Y>
struct T {
T() {
i = 0; // ERROR, should be T::i or this->i
}
};
Clang correctly diagnoses this problem, which presents a problem for old
broken code that compiles OK with MS and Borland. This problem appears
to be quite widespread.
Would there be any interest in a patch that turns off 2-phase lookup
when in MS/Borland compatibility mode
(-fms-extensions/-fborland-extensions)? If so, I can see about providing
one.
--
Eric Niebler
BoostPro Computing
http://www.boostpro.com
More information about the cfe-dev
mailing list