]> granicus.if.org Git - clang/commitdiff
Move "Unqualified lookup into dependent bases of class templates" Microsoft specific...
authorFrancois Pichet <pichet2000@gmail.com>
Fri, 11 Nov 2011 00:12:11 +0000 (00:12 +0000)
committerFrancois Pichet <pichet2000@gmail.com>
Fri, 11 Nov 2011 00:12:11 +0000 (00:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144341 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaOverload.cpp
test/SemaCXX/MicrosoftCompatibility.cpp
test/SemaTemplate/ms-lookup-template-base-classes.cpp

index a8fdfcb0d40518915096c1ab99128de68a6512cd..6977462bc92a5d1e3f3dd3566d0676a484087a90 100644 (file)
@@ -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,
index 1dadfec7002fa42066563d5895b612658ca6e1ac..5ac09d9573569ad579dd519ec7143a42bcac5de7 100644 (file)
@@ -137,22 +137,3 @@ template void function_missing_typename<D>(const D::Type param);
 \r
 \r
 \r
-namespace lookup_dependent_bases_id_expr {\r
-\r
-template<class T> class A {\r
-public:\r
-  int var;\r
-};\r
-\r
-\r
-template<class T>\r
-class B : public A<T> {\r
-public:\r
-  void f() {\r
-    var = 3;\r
-  }\r
-};\r
-\r
-template class B<int>;\r
-\r
-}
index 910fa37e80d8f58e8f605ecb5c99f50fb23beac5..0e3757297fe866491ed02633be9d8ac160ff847b 100644 (file)
@@ -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>;
+
+}