diff options
author | Francois Pichet <pichet2000@gmail.com> | 2011-11-11 00:12:11 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2011-11-11 00:12:11 +0000 |
commit | ef04ecf96d83cd3cbc7bf8cf36d4c7873964194e (patch) | |
tree | ea33bcae944c2eecdadd226095b01a85c3a6bdcf | |
parent | 9e9a3e612d57b583800d5f0e48bb28d4afbd8b84 (diff) |
Move "Unqualified lookup into dependent bases of class templates" Microsoft specific behavior from -fms-extensions to -fms-compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144341 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaOverload.cpp | 2 | ||||
-rw-r--r-- | test/SemaCXX/MicrosoftCompatibility.cpp | 19 | ||||
-rw-r--r-- | test/SemaTemplate/ms-lookup-template-base-classes.cpp | 21 |
3 files changed, 21 insertions, 21 deletions
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp index a8fdfcb0d4..6977462bc9 100644 --- a/lib/Sema/SemaOverload.cpp +++ b/lib/Sema/SemaOverload.cpp @@ -8705,7 +8705,7 @@ Sema::BuildOverloadedCallExpr(Scope *S, Expr *Fn, UnresolvedLookupExpr *ULE, // create a type dependent CallExpr. The goal is to postpone name lookup // to instantiation time to be able to search into type dependent base // classes. - if (getLangOptions().MicrosoftExt && CurContext->isDependentContext() && + if (getLangOptions().MicrosoftMode && CurContext->isDependentContext() && isa<CXXMethodDecl>(CurContext)) { CallExpr *CE = new (Context) CallExpr(Context, Fn, Args, NumArgs, Context.DependentTy, VK_RValue, diff --git a/test/SemaCXX/MicrosoftCompatibility.cpp b/test/SemaCXX/MicrosoftCompatibility.cpp index 1dadfec700..5ac09d9573 100644 --- a/test/SemaCXX/MicrosoftCompatibility.cpp +++ b/test/SemaCXX/MicrosoftCompatibility.cpp @@ -137,22 +137,3 @@ template void function_missing_typename<D>(const D::Type param); -namespace lookup_dependent_bases_id_expr {
-
-template<class T> class A {
-public:
- int var;
-};
-
-
-template<class T>
-class B : public A<T> {
-public:
- void f() {
- var = 3;
- }
-};
-
-template class B<int>;
-
-} diff --git a/test/SemaTemplate/ms-lookup-template-base-classes.cpp b/test/SemaTemplate/ms-lookup-template-base-classes.cpp index 910fa37e80..0e3757297f 100644 --- a/test/SemaTemplate/ms-lookup-template-base-classes.cpp +++ b/test/SemaTemplate/ms-lookup-template-base-classes.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fms-extensions -fsyntax-only -verify %s +// RUN: %clang_cc1 -fms-compatibility -fsyntax-only -verify %s template <class T> @@ -28,4 +28,23 @@ void test() b.z(3); } +namespace lookup_dependent_bases_id_expr { + +template<class T> class A { +public: + int var; +}; + + +template<class T> +class B : public A<T> { +public: + void f() { + var = 3; + } +}; + +template class B<int>; + +} |