diff options
-rw-r--r-- | clang/lib/Sema/SemaAccess.cpp | 2 | ||||
-rw-r--r-- | clang/test/SemaCXX/MicrosoftCompatibility.cpp | 20 | ||||
-rw-r--r-- | clang/test/SemaCXX/MicrosoftExtensions.cpp | 20 |
3 files changed, 21 insertions, 21 deletions
diff --git a/clang/lib/Sema/SemaAccess.cpp b/clang/lib/Sema/SemaAccess.cpp index db78680a13a..e501a393d1b 100644 --- a/clang/lib/Sema/SemaAccess.cpp +++ b/clang/lib/Sema/SemaAccess.cpp @@ -1270,7 +1270,7 @@ static AccessResult CheckEffectiveAccess(Sema &S, AccessTarget &Entity) { assert(Entity.getAccess() != AS_public && "called for public access!"); - if (S.getLangOptions().MicrosoftExt && + if (S.getLangOptions().MicrosoftMode && IsMicrosoftUsingDeclarationAccessBug(S, Loc, Entity)) return AR_accessible; diff --git a/clang/test/SemaCXX/MicrosoftCompatibility.cpp b/clang/test/SemaCXX/MicrosoftCompatibility.cpp index 98a7532f0c5..4179ed81f3e 100644 --- a/clang/test/SemaCXX/MicrosoftCompatibility.cpp +++ b/clang/test/SemaCXX/MicrosoftCompatibility.cpp @@ -70,3 +70,23 @@ int jump_over_indirect_goto() { +namespace ms_using_declaration_bug {
+
+class A {
+public:
+ int f();
+};
+
+class B : public A {
+private:
+ using A::f;
+};
+
+class C : public B {
+private:
+ using B::f; // expected-warning {{using declaration refers to inaccessible member 'ms_using_declaration_bug::B::f', which refers to accessible member 'ms_using_declaration_bug::A::f', accepted for Microsoft compatibility}}
+};
+
+}
+
+
diff --git a/clang/test/SemaCXX/MicrosoftExtensions.cpp b/clang/test/SemaCXX/MicrosoftExtensions.cpp index e5e5752dba8..1eb0c495f82 100644 --- a/clang/test/SemaCXX/MicrosoftExtensions.cpp +++ b/clang/test/SemaCXX/MicrosoftExtensions.cpp @@ -213,26 +213,6 @@ void pointer_to_integral_type_conv(char* ptr) { sh = (short)ptr; } -namespace ms_using_declaration_bug { - -class A { -public: - int f(); -}; - -class B : public A { -private: - using A::f; -}; - -class C : public B { -private: - using B::f; // expected-warning {{using declaration refers to inaccessible member 'ms_using_declaration_bug::B::f', which refers to accessible member 'ms_using_declaration_bug::A::f', accepted for Microsoft compatibility}} -}; - -} - - namespace friend_as_a_forward_decl { |